Source: https://seerepo.com/compare/omnivore-app/omnivore/vs/TryGhost/Ghost
Markdown source: https://seerepo.com/compare/omnivore-app/omnivore/vs/TryGhost/Ghost.md
Description: omnivore and Ghost share 14 technologies: Express, React, bullmq, Sentry, jsonwebtoken, sanitize-html, dompurify, image-size, node-html-markdown, nodemailer, html-to-text, Radix UI, react-dropzone, and markdown-it. Both are written in TypeScript.

# omnivore vs Ghost

omnivore and Ghost share 14 technologies: Express, React, bullmq, Sentry, jsonwebtoken, sanitize-html, dompurify, image-size, node-html-markdown, nodemailer, html-to-text, Radix UI, react-dropzone, and markdown-it. Both are written in TypeScript.

- [omnivore-app/omnivore](https://seerepo.com/r/omnivore-app/omnivore): Omnivore is a complete, open source read-it-later solution for people who like reading.
- [TryGhost/Ghost](https://seerepo.com/r/TryGhost/Ghost): Independent technology for modern publishing, memberships, subscriptions and newsletters.

## What they share and what sets them apart

- In common: Express, React, bullmq, Sentry, jsonwebtoken, sanitize-html, dompurify, image-size, node-html-markdown, nodemailer, html-to-text, Radix UI, react-dropzone, markdown-it
- Only in omnivore: androidx.compose.runtime:runtime-livedata, Jetpack Compose, androidx.navigation:navigation-compose, androidx.hilt:hilt-navigation-compose, androidx.datastore:datastore-preferences, Firebase, PostHog, com.google.dagger:hilt-android, core-ktx, lifecycle-livedata-ktx, lifecycle-runtime-compose, lifecycle-viewmodel-savedstate, express-graphql, Redis, Google Cloud, Postgres, aws-sdk, rate-limit-redis, Google, @apollo/server, @as-integrations/express5, OpenAI, Next.js, @react-native-async-storage/async-storage, ui-util, MarkdownUI, androidx.appcompat:appcompat, androidx.core:core-splashscreen, com.google.accompanist:accompanist-flowlayout, material-icons-extended, room-ktx, room-runtime, coil-compose, compose-markdown, TypeORM, bcryptjs, jwks-rsa, LangChain, linkedom, showdown, rss-parser, @sendgrid/mail, addressparser, fast-xml-parser, html-entities, mailparser, node-mailjet, sax, yaml, prom-client, winston, @google-cloud/opentelemetry-cloud-trace-exporter, @opentelemetry/exporter-jaeger, express-prom-bundle, parse-srcset, microsoft-cognitiveservices-speech-sdk, natural, imapflow, kbar, @floating-ui/react, antd, react-hot-toast, react-markdown-editor-lite, react-topbar-progress-indicator, react-spinners, react-arborist, allotment, re-resizable, react-color, react-input-autosize, use-resize-observer, yet-another-react-lightbox, @phosphor-icons/react, pdfjs-dist, react-markdown, remark-gfm, epubjs
- Only in Ghost: Vite, React Router, Preact, bson-objectid, @isaacs/ttlcache, cache-manager, lru-cache, Stripe, Mailgun, Hono, js-yaml, Tailwind CSS, sonner, React Hook Form, html2canvas-pro, Zod, @hookform/resolvers, @codemirror/theme-one-dark, CodeMirror, xyflow, @uiw/react-codemirror, dnd-kit, @floating-ui/react-dom, @tanstack/react-virtual, D3, Lucide, papaparse, validator, Headless UI, tiptap, react-day-picker, class-variance-authority, tailwind-merge, recharts, cmdk, @number-flow/react, country-flag-icons, knex, express-session, otplib, cookie-session, jose, Cheerio, handlebars, sharp, entities, file-type, probe-image-size, rss, cron-validate, lexical, markdown-it-footnote, markdown-it-mark, markdown-it-sub, markdown-it-sup, emoji-mart, @lezer/highlight, react-colorful, react-error-boundary, @lexical/markdown, prop-types, Ajv, ajv-formats

## Side by side

| | omnivore | Ghost |
|---|---|---|
| Size | 540,180 lines written, 1,314 code files | 1,229,446 lines written, 4,191 code files |
| Who writes it | 0% of its commits signed by AI. With GitHub Copilot | 1.5% of its commits signed by AI. With Codex, Claude Code, Cursor, CodeRabbit, and GitHub Copilot |
| Activity | Last push November 6, 2026, 9,396 commits, 16,408 stars | Last push November 5, 2026, 51,839 commits, 55,684 stars |
| Tests | 470 test files. 8.2% of its code files have a test that imports them | 2,676 test files. 39.8% of its code files have a test that imports them |

- Size: Lines written by people and agents, without generated ones; code files, without tests.
- Who writes it: A commit counts as AI's when it carries its signature: a Co-Authored-By line, its author name or the merge of its branch.
- Activity: From GitHub and its history, on the day SeeRepo read it.
- Tests: The files that test the code, and the share of code files a test imports.

## Frequently asked questions

### Which is bigger, omnivore or Ghost?

Ghost, with 1,229,446 lines written; omnivore has 540,180.

The proof: [TryGhost/Ghost's code at commit 7336dc2](https://github.com/TryGhost/Ghost/tree/7336dc28b3ac6e4351c24b0b93ce03700d32a8e8)

### Which has more GitHub stars, omnivore or Ghost?

Ghost, with 55,684 stars; omnivore has 16,408.

The proof: [TryGhost/Ghost on GitHub](https://github.com/TryGhost/Ghost)

### Which has more tests, omnivore or Ghost?

Ghost, with 2,676 test files; omnivore has 470.

The proof: [TryGhost/Ghost's code at commit 7336dc2](https://github.com/TryGhost/Ghost/tree/7336dc28b3ac6e4351c24b0b93ce03700d32a8e8)

### Which was updated more recently, omnivore or Ghost?

omnivore: its last push was on November 6, 2026, and Ghost's on November 5, 2026.

The proof: [omnivore-app/omnivore's commits on GitHub](https://github.com/omnivore-app/omnivore/commits)

### Which has more commits signed by AI, omnivore or Ghost?

Ghost: an AI signed 1.5% of its commits, with Codex, Claude Code, Cursor, CodeRabbit, and GitHub Copilot.

The proof: [the commits each tool signed in TryGhost/Ghost](https://seerepo.com/r/TryGhost/Ghost/ai)

## Sources

- omnivore-app/omnivore: Read on November 7, 2026, at commit 4cdfc3d (https://github.com/omnivore-app/omnivore/tree/4cdfc3d75bd1b7de203f24b812541c58df30209f)
- TryGhost/Ghost: Read on November 5, 2026, at commit 7336dc2 (https://github.com/TryGhost/Ghost/tree/7336dc28b3ac6e4351c24b0b93ce03700d32a8e8)

## What is your repo built with?

Any public repo, with no account: https://seerepo.com/r/owner/repo/built, with the owner and name it has on GitHub.
