Source: https://seerepo.com/compare/OpenCTI-Platform/opencti/vs/TryGhost/Ghost
Markdown source: https://seerepo.com/compare/OpenCTI-Platform/opencti/vs/TryGhost/Ghost.md
Description: opencti and Ghost share 19 technologies: Vite, React, React Router, Express, lru-cache, D3, recharts, dompurify, prop-types, jose, express-session, otplib, file-type, nodemailer, sanitize-html, Ajv, Zod, validator, and ajv-formats. Both are written in TypeScript.

# opencti vs Ghost

opencti and Ghost share 19 technologies: Vite, React, React Router, Express, lru-cache, D3, recharts, dompurify, prop-types, jose, express-session, otplib, file-type, nodemailer, sanitize-html, Ajv, Zod, validator, and ajv-formats. Both are written in TypeScript.

- [OpenCTI-Platform/opencti](https://seerepo.com/r/OpenCTI-Platform/opencti): Open Cyber Threat Intelligence Platform
- [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: Vite, React, React Router, Express, lru-cache, D3, recharts, dompurify, prop-types, jose, express-session, otplib, file-type, nodemailer, sanitize-html, Ajv, Zod, validator, ajv-formats
- Only in opencti: FastAPI, pika, starlette, uvicorn, react-relay, amqplib, Redis, @aws-sdk/lib-storage, @sesamecare-oss/redlock, Elastic, OpenSearch, Mistral AI, OpenAI, @apollo/server, graphql-scalars, @as-integrations/express5, sphinx-rtd-theme, pyjwt, Pydantic, python-json-logger, prometheus-client, boto3, OpenTelemetry, opentelemetry-exporter-prometheus, MUI, Formik, apexcharts, reactflow, jsonforms, react-force-graph-2d, @hello-pangea/dnd, react-mde, react-syntax-highlighter, react-virtualized, react-virtualized-auto-sizer, react-grid-layout, rjsf, @graphiql/toolkit, d3-timer, MapLibre, react-apexcharts, react-color, react-draggable, react-transition-group, three-spritetext, @mui/icons-material, pdfmake, html-react-parser, react-markdown, react-pdf, marked, qrcode, html-to-image, is-svg, markdown-to-jsx, remark-gfm, remark-parse, yup, @cfworker/json-schema, @rjsf/utils, @opentelemetry/sdk-logs, Passport, aws-sdk, bcryptjs, @node-saml/passport-saml, helmet, jwt-decode, openid-client, passport-ldapauth, passport-facebook, passport-google-oauth, passport-local, LangChain, EJS, turndown, csv-parse, xml2js, @aws-sdk/types, @pyroscope/nodejs, winston, winston-daily-rotate-file
- Only in Ghost: Preact, bson-objectid, Sentry, Hono, tryghost, cache-manager, cache-manager-ioredis, Stripe, Mailgun, path-match, express-lazy-router, Tailwind CSS, sonner, Radix UI, React Hook Form, html2canvas-pro, @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, react-svg-map, Lucide, papaparse, Headless UI, tiptap, @doist/react-interpolate, react-day-picker, class-variance-authority, tailwind-merge, cmdk, @number-flow/react, react-dropzone, country-flag-icons, knex, @tryghost/bookshelf-plugins, bookshelf, bookshelf-relations, knex-migrator, @tryghost/security, jsonwebtoken, Better Auth, cookie-session, cookies, express-jwt, Cheerio, handlebars, downsize-cjs, express-hbs, js-yaml, 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-error-boundary, react-slider, @lexical/markdown, @tryghost/logging, @tryghost/debug, sharp, parse-email-address

## Side by side

| | opencti | Ghost |
|---|---|---|
| Size | 1,058,731 lines written, 4,152 code files | 1,254,280 lines written, 4,224 code files |
| Who writes it | 1.7% of its commits signed by AI. With Claude Code, GitHub Copilot, and Cursor | 1.5% of its commits signed by AI. With Codex, Claude Code, Cursor, CodeRabbit, Amp, and GitHub Copilot |
| Activity | Last push November 13, 2026, 14,738 commits, 10,360 stars | Last push November 13, 2026, 52,111 commits, 55,801 stars |
| Tests | 1,727 test files. 28.2% of its code files have a test that imports them | 2,703 test files. 40% 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, opencti or Ghost?

Ghost, with 1,254,280 lines written; opencti has 1,058,731.

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

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

Ghost, with 55,801 stars; opencti has 10,360.

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

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

Ghost, with 2,703 test files; opencti has 1,727.

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

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

Both got their last push on November 13, 2026.

The proof: [OpenCTI-Platform/opencti's commits on GitHub](https://github.com/OpenCTI-Platform/opencti/commits)

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

opencti: an AI signed 1.7% of its commits, with Claude Code, GitHub Copilot, and Cursor; in Ghost, 1.5%.

The proof: [the commits each tool signed in OpenCTI-Platform/opencti](https://seerepo.com/r/OpenCTI-Platform/opencti/ai)

## Sources

- OpenCTI-Platform/opencti: Read on November 13, 2026, at commit 76306f3 (https://github.com/OpenCTI-Platform/opencti/tree/76306f3f08eaced718557776cce3a7e0b868d666)
- TryGhost/Ghost: Read on November 13, 2026, at commit fd6f4f7 (https://github.com/TryGhost/Ghost/tree/fd6f4f749a613a540f7218f26c8cef4c282b15c2)

## 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.
