crystal vs Ghost
crystal and Ghost share 5 technologies: Express, Hono, React, react-error-boundary, and jsonwebtoken. Both are written in TypeScript.
What they share and what sets them apart
graphile
crystal
🔮 Graphile's Crystal Monorepo; home to Grafast, PostGraphile, pg-introspection, pg-sql2 and much more!
TypeScript12.9kRead on November 10, 2026, at commit 1c037b4What is crystal built with?Only in crystal
- Postgres
- Fastify
- Koa
graphql-http
- @whatwg-node/server
- H3
@hono/node-server
- graphiql
- Mermaid
- @graphiql/toolkit
In common
TryGhost
Ghost
Independent technology for modern publishing, memberships, subscriptions and newsletters.
TypeScript55.7kRead on November 10, 2026, at commit 912930cWhat is Ghost built with?Only in Ghost
- Vite
- React Router
- Preact
- bson-objectid
- Sentry
tryghost
- lru-cache
bullmq
cache-manager
- cache-manager-ioredis
- Stripe
- Mailgun
- path-match
- express-lazy-router
knex
- js-yaml
- Zod
- Tailwind CSS
sonner
- Radix UI
- React Hook Form
html2canvas-pro
- dompurify
@hookform/resolvers
- @codemirror/theme-one-dark
@tryghost/custom-fonts
- CodeMirror
- xyflow
@uiw/react-codemirror
dnd-kit
@floating-ui/react-dom
- @svg-maps/world
- @tanstack/react-virtual
- D3
- react-svg-map
- Lucide
papaparse
- validator
- Headless UI
tiptap
@doist/react-interpolate
react-day-picker
class-variance-authority
tailwind-merge
recharts
- cmdk
@number-flow/react
react-dropzone
- country-flag-icons
@tryghost/bookshelf-plugins
bookshelf
- bookshelf-relations
- knex-migrator
@tryghost/security
- Better Auth
express-session
- otplib
- cookie-session
- cookies
- express-jwt
- jose
- Cheerio
- handlebars
- sanitize-html
- sharp
- downsize-cjs
- express-hbs
- file-type
- entities
- image-size
- heic-convert
- html-to-text
- html5parser
- juice
- node-html-markdown
- probe-image-size
- rss
@tryghost/validator
- cron-validate
lexical
markdown-it
markdown-it-footnote
- markdown-it-image-lazy-loading
- markdown-it-lazy-headers
markdown-it-mark
markdown-it-sub
markdown-it-sup
- codemirror-spell-checker
emoji-mart
uiw
- @lezer/highlight
- react-colorful
- react-slider
@lexical/markdown
- prop-types
@tryghost/logging
- Ajv
- ajv-formats
@tryghost/debug
nodemailer
- parse-email-address
Side by side
crystalGhost
SizeLines written by people and agents, without generated ones; code files, without tests.
crystal878,730 lines written536 code files
Ghost1,238,529 lines written4,184 code files
Who writes itA commit counts as AI's when it carries its signature: a Co-Authored-By line, its author name or the merge of its branch.
crystal0% of its commits signed by AIWith GitHub Copilot
Ghost1.5% of its commits signed by AIWith Codex, Claude Code, Cursor, CodeRabbit, and GitHub Copilot
ActivityFrom GitHub and its history, on the day SeeRepo read it.
crystalLast push November 9, 202615,796 commits12,934 stars
GhostLast push November 10, 202651,918 commits55,720 stars
TestsThe files that test the code, and the share of code files a test imports.
crystal250 test files5.6% of its code files have a test that imports them
Ghost2,689 test files40.1% of its code files have a test that imports them
Frequently asked questions
Which is bigger, crystal or Ghost?
Ghost, with 1,238,529 lines written; crystal has 878,730.
The proof: TryGhost/Ghost's code at commit 912930c
Which has more GitHub stars, crystal or Ghost?
Ghost, with 55,720 stars; crystal has 12,934.
The proof: TryGhost/Ghost on GitHub
Which has more tests, crystal or Ghost?
Ghost, with 2,689 test files; crystal has 250.
The proof: TryGhost/Ghost's code at commit 912930c
Which was updated more recently, crystal or Ghost?
Ghost: its last push was on November 10, 2026, and crystal's on November 9, 2026.
The proof: TryGhost/Ghost's commits on GitHub
Which has more commits signed by AI, crystal or Ghost?
Ghost: an AI signed 1.5% of its commits, with Codex, Claude Code, Cursor, CodeRabbit, and GitHub Copilot.
See inside your code, today.
Paste your repo and see it drawn, part by part: a medium one in under a minute.
Free, no account.

