Ghost is an open-source publishing platform run by the non-profit Ghost Foundation, sold as managed Ghost(Pro) hosting from $15 a month or self-hosted for free under the MIT license.
Ghost wins on focus: newsletters, memberships and analytics are built in, Ghost(Pro) removes all maintenance, and there is no plugin stack to secure or update. WordPress wins on everything Ghost refuses to do, with custom post types, tens of thousands of plugins, multilingual and multisite support and a far larger agency and developer pool. Pick Ghost for a publication, WordPress for a general-purpose website.
Full Comparison →Craft is the better content engine, with precise custom content modeling, nested entries, GraphQL and any number of sites and languages from one install. Ghost is the better publishing business, with native paid memberships, unlimited newsletters, built-in analytics and a managed hosting path that needs no developer. Both are small-vendor open-source products without compliance certifications.
Full Comparison →Webflow gives marketers a visual canvas, native A/B testing and localization, while Ghost page layouts are fixed by a Handlebars theme and experimentation means pasting a VWO snippet. Ghost counters with native subscriptions and newsletters, a free MIT self-hosted option, full data export and a first-party MCP server, none of which Webflow offers. Choose Webflow for a marketing site, Ghost for a subscriber publication.
Full Comparison →HubSpot Content Hub bundles a CRM, behavioral personalization, forms and multi-step marketing automation that Ghost cannot match, since Ghost's automations are a two-step email sequence in beta and its segmentation keys off membership tier. Ghost is far cheaper, publishes every price, can be self-hosted, exports everything and avoids the contract lock-in of the HubSpot suite. Lead-generation marketers belong on HubSpot; publishers monetizing readers belong on Ghost.
Full Comparison →Our analysts rate 8 platforms as replacements, with a recommendation for who should move and who should stay. Ratings updated Oct 16, 2026.
Email is core rather than bolted on: every plan includes unlimited newsletter sends, multiple newsletters, a custom sending domain and in-editor email preview. Members sign in with passwordless magic links through Portal, subscribe to free or paid tiers through Stripe, and see content gated by tier, with offers, retention offers, gift subscriptions and tips all native. Posts publish once to the web, email, RSS and the social web via ActivityPub, and member sources attribute every signup to a campaign. A publisher gets a complete subscription business without stitching together an email service, a paywall and a payment provider.
A Ghost(Pro) trial goes from signup to a published post in minutes with hosting, CDN, SSL and newsletters already configured, and self-hosting is now a clone plus two Docker Compose commands. Ghost's migration team quotes 7 to 21 days for a full managed move with native importers for WordPress, Substack, Medium, Squarespace, beehiiv and Mailchimp. The product has no clustering to architect, no plugin stack to maintain and only a handful of concepts to learn, so one developer or none at all can run it.
The pricing page publishes exact monthly and annual prices for every audience band from 1,000 to 100,000 members, a 62-row feature table, and the only two add-ons ($50 a month each for a custom SSL certificate or a subdirectory install). The plan fee covers hosting, CDN, backups, weekly updates and unlimited email, with no bandwidth, API or email-send metering and 0% transaction fees. Plans change with immediate proration, cancellation is self-serve, content and members export as JSON and CSV, and the MIT self-hosted build is a permanent fallback.
Ghost ships cookie-free web analytics with real-time visitors, per-post traffic, newsletter opens and clicks, and member conversions attributed to the post that drove them, all filterable by audience segment. Every post carries meta, Open Graph and canonical fields, and sitemaps, Article structured data and bulk redirects are automatic. Since July 2026 a single toggle generates llms.txt and llms-full.txt and serves a Markdown version of every public post for AI assistants, excluding members-only content. Marketers measure and tune without a plugin or a separate analytics subscription.
Ghost Foundation publishes its finances live: about $11.1 million in annual recurring revenue growing 28.7% year over year, 2.92% net churn and 30,579 paying customers, with a constitution that bars the company from being bought or sold. The team tagged 76 releases in 2026 through September on a weekly cadence, with emoji-categorized release notes and a permanent breaking-changes catalog, and the GitHub repository holds more stars than any other CMS we score. Buyers can plan on a vendor that cannot be acquired and does not depend on outside capital.
The official ghst command-line tool exposes the whole Admin API from the terminal and runs as a Model Context Protocol (MCP) server with 12 tool groups, read-only and destructive-action annotations and a gate on destructive commands. Ghost also publishes an async Python client, GitHub Actions for theme deploys and scheduled post updates, an official VS Code extension and machine-readable documentation. Teams wiring AI assistants or scripts into publishing get a supported path rather than a community workaround, though the CLI is still labelled beta and absent from the main docs site.
Ghost's schema allows exactly two content types, post and page, with a fixed field set. There are no custom content types, no custom fields on posts (the 2026 custom-fields work applies to members only), no user-defined relationships between entries and no configurable validation. Anything that is not an article, from a product record to an event or a team profile, has to be faked with tags and card layouts. Teams with structured content needs will outgrow it quickly.
Ghost translates its own interface strings (Portal, search, comments, newsletters) into about 60 languages, but posts have no locale field and the API has no locale query. Multilingual publishing means a separate Ghost install per language, and the Weglot and Transifex integrations only translate the rendered page in the browser. There is no translation workflow, no translation memory and no way to manage market-specific campaigns inside one site.
Ghost(Pro) requires a separate account and subscription for every additional site, and self-hosted installs are separate processes with separate databases, staff lists and themes. There is no shared component library, no central user management, no cross-site governance and no portfolio analytics. A company running several brands pays and administers each one independently and duplicates every change by hand.
Staff permissions are five fixed roles (Contributor, Author, Editor, Administrator, Owner) with no custom roles, no field-level or section-level scoping, and the documentation states that Ghost treats all staff as trusted. Post status is limited to draft, scheduled, published and sent, with no review stages, assignments or due dates. The multiplayer editing experiment was removed in 2024, so two people cannot edit a post at once, and the History log of staff actions can be viewed in the admin but never exported or read by API.
Ghost Foundation holds no SOC 2, ISO 27001 or HIPAA attestation, offers no Business Associate Agreement, and its Data Processing Agreement withholds both the sub-processor list and the security annex as available on request. No VPAT or accessibility statement exists, and a buyer's forum request for one in August 2025 went unanswered. Ghost published 61 security advisories in 2026 against one in 2025, including a Content API SQL injection exploited against unpatched sites, so self-hosters are on a weekly patch cycle. Regulated procurement teams have little to file.
The editor has no AI writing assistant, rewriting, alt-text generation, image generation, metadata suggestions or content audit tooling, and there is no settings page to bring your own model or API key. Ghost's AI work in 2026 went entirely into making content readable by other people's agents, not into helping authors. Teams that expect generative assistance inside the CMS will run it in external tools and publish through the API.
Ghost's schema fixes content to two types, post and page, with a fixed field set; there are no custom content types and no post-level custom fields (member custom fields are a private labs flag, not content). Above the 20s only because posts and pages carry a solid built-in field set (excerpt, feature image, SEO and social fields, code injection, visibility).
Relationships are hard-coded joins (posts to tags, posts to authors, posts to newsletter) that can be filtered from both sides through the Content API, but editors cannot define new relationship types or reference one post from another. Not lower because tag and author lookups work in both directions; not higher because nothing is user-definable.
Post bodies are stored as Lexical JSON with a rich card set (callout, toggle, product, header, signup, button, bookmark, embeds) and reusable snippets, which gives block composition inside a single entry. There are no reusable components shared across entries by reference, no slots or regions, and custom cards are still not shipped.
Validation is limited to schema-level constraints in core (length limits, enumerations, unique slug per type) applied to both editor and Admin API writes. There are no user-configurable rules, no regex or required-field settings and no pre-save hook, so it sits well below the standard built-in validation band.
Post history keeps up to 25 revisions per post with author attribution, a visual preview of each revision and one-click restore in the editor. There is no field-level diff, no branching or releases, no API access to revisions and no trash for deleted posts, which keeps it in the basic-revisions band.
Classification is flat tags (with internal #-prefixed tags and a primary tag) that carry their own description, image, SEO and social metadata, are queryable through the Content API tags endpoint and can drive taxonomies and collections in routes.yaml. There is no hierarchy, no controlled vocabulary beyond role permissions to create tags, no second taxonomy field and no metadata schema for assets, which places it in the tags-only band.
Editors preview drafts rendered by the live theme in desktop, mobile and email views, including preview as a specific member tier, and can share a draft preview link; the 2026 staff admin toolbar adds page-aware edit actions on the live site. There is no click-to-edit on the frontend and drafts are not exposed through the Content API, so headless frontends get no draft preview.
The Lexical editor stores a portable JSON document, supports Markdown shortcuts, a Markdown card, paste transformation from Word and Google Docs and a wide card set for embeds, and the Content API returns html, plaintext or lexical. Custom marks and custom node registration are not available, so it stops short of the extensible-AST band.
Ghost resizes uploads into theme-defined sizes with srcset generation and WebP/AVIF output through {{img_url}}, offers alt text, captions and in-editor image editing, and supports video and audio upload. There is no browsable media library with folders or metadata, no focal point, no URL-based arbitrary transforms and no usage tracking.
Ghost removed its Lexical multiplayer experiment in 2024 and has no presence, staff comments, mentions or suggestion mode; concurrent saves are caught by an update-collision check that tells the second editor someone else changed the post. Revision history records who saved what, but collaboration is effectively one editor at a time.
Workflow is the role model: Contributors write drafts they cannot publish, and Editors or Administrators publish or schedule them. Post status is fixed to draft, scheduled, published and sent, with no custom states, assignment, routing or due dates; the staff history log is the only audit trail.
Posts and newsletters can be scheduled to publish and send at a site-timezone-aware time from the editor or the Admin API, with scheduled, unscheduled and rescheduled webhook events. There is no scheduled unpublish or expiry, no release bundles and no calendar view, so it sits just under the scheduled-publishing band.
Ghost has a single publication language that translates the interface strings of Portal, newsletters, search and comments, but posts have no locale field and no locale-aware API queries. Multilingual sites are built by hand with tags and routes.yaml collections or separate installs, which is the no-native-localization band.
Ghost has a fixed set of staff roles (Contributor, Author, Editor, Administrator, Owner, plus a Super Editor role that can also manage members) with no custom roles, field-level, content-type or entry-level permissions. 2FA and device verification are on all plans, but SAML or OAuth SSO is limited to the Custom plan and there is no SCIM.
A read-only Content API is separated from the Admin API, with NQL filtering, ordering, field selection, includes and pagination, plus a JavaScript client. It covers only posts, pages, tags, authors, tiers and settings, has no GraphQL and no locale parameter, which keeps it at the bottom of the well-designed REST band.
Ghost(Pro) plans include a worldwide CDN that caches the rendered site and is cleared automatically on publish, while self-hosted installs serve from the Node origin unless the operator adds a CDN. There is no purge API, edge functions or edge personalization, and the self-hosted path is DIY.
Around 30 events cover posts, pages, tags, members and site changes, payloads are HMAC-SHA256 signed, deliveries retry up to five times and the last trigger status is stored. There is no event filtering, no custom headers, no full delivery log and no streaming alternative, and Ghost(Pro) gates custom integrations to Publisher and above.
Ghost is a coupled publishing platform with an API layer: content goes out as web pages, email newsletters, ActivityPub, RSS, per-post Markdown and llms.txt, and through the Content API as HTML, plaintext or Lexical. Official SDKs are JavaScript only and Lexical needs Ghost-specific parsers, so it fits the traditional-CMS-with-API band.
Ghost's members database supports filtered and saved views with relative-date operators, labels, tier and newsletter filters and engagement signals such as email opens, which is first-party segmentation over its own subscriber profiles. Segments drive bulk actions and email targeting, but content rules only key off free, paid and tier status, and there is no CDP integration beyond Segment's website snippet.
Post access can be set to public, members, paid or specific tiers, and individual cards can be shown or hidden for free or paid members on the web and in email with pre-publish preview per segment. Variants are limited to those coarse membership states, with no rule-based variants on behavior or saved segments.
Ghost ships no experimentation feature; its integrations directory points to VWO snippets pasted into global code injection. That is a fully external tool with no data flowing back into Ghost, so it scores at the bottom of the external-tool band.
Ghost's Recommendations feature lets a publication manually recommend other publications, and themes can show related posts by shared tag. There is no algorithmic recommendation of content to readers.
Built-in Sodo search covers post titles and excerpts of the latest 10,000 posts plus tags and authors, with no full-text body search, facets, tuning or analytics. Ghost maintains first-party Algolia indexing tools and documents them as the route for larger sites, which lifts it above API-only search.
Ghost natively sells subscriptions, tiers, offers, retention offers, gift subscriptions and tips through Stripe with Stripe Tax support. Ghost states it has no shopping cart or inventory management, so there is no product catalog or checkout for goods.
Shopify and BigCommerce integrations work by generating a Buy Button embed in the commerce platform and pasting it into a Ghost HTML card, with Snipcart, Gumroad and PayPal following the same embed pattern. There is no product picker or live product data federation.
Native analytics cover real-time visitors, per-post web traffic, newsletter opens and clicks, member growth and conversions attributed to posts, with chained filters and UTM support added in 2026. Advanced analytics are gated to Publisher and above, and there is no content health or author productivity reporting.
GA4, Segment, Amplitude, Plausible, Fathom, Matomo and Hotjar are documented as snippets pasted into code injection, and server-side member events are available as webhooks. There are no event helpers, data layer or maintained connectors.
One Ghost install or Ghost(Pro) subscription is one publication; additional sites need separate accounts with separate subscriptions and nothing is shared between them.
Translation integrations (Weglot, Transifex Live, Crowdin proxy) translate the rendered site client-side or by proxy, with no translation UX, TMS sync or translation memory inside Ghost. Without a content locale model there is nothing for a TMS connector to attach to.
Ghost has no organization, tenant or brand construct above a single publication, so there is no shared component library, cross-brand policy or brand-level reporting.
Ghost offers in-editor image editing, unlimited uploads and Unsplash and Giphy pickers, but no asset library with metadata schemas, rights, approvals, versioning or usage tracking. The Cloudinary integration is an image CDN path, not a DAM connector.
Video and audio cards accept direct uploads with a generated thumbnail and player, but file size limits are small on lower plans (5 MB on Starter, 100 MB on Publisher) and there is no transcoding, adaptive streaming or captions. Most publishers embed from YouTube or Vimeo.
Pages are built in the card editor with drag-to-reorder cards, header and call-to-action cards and reusable snippets, while layout is fixed by the theme. There is no section or column composition, template locking or governed component palette, and layout changes need theme code.
Ghost renders the full site from Handlebars themes with dynamic routing, and Ghost(Pro) runs it as a managed service with CDN, TLS, custom domains, backups and upgrades on every plan; it can also be self-hosted or used headless. There are no staging environments or deploy pipelines and the frontend is limited to Ghost's theme layer, so it sits in the hosted-with-limits band.
Native capture is limited to member signup forms (embeddable, with labels applied at signup and spam protection) and the audience feedback widget. General-purpose forms with fields, logic or routing go through Tally, Typeform, Formspree and similar embeds.
Newsletters are core to Ghost: unlimited sends on all plans, multiple newsletters, custom sending domain, managed deliverability, email design settings, in-editor email preview and segment-targeted sends from the post itself. External ESP sync (Mailchimp) is only CSV or Zapier, which keeps it from the top of the band.
Email sequences for new members (wait and send-email steps with per-step analytics) shipped in 2026 as a Labs beta that cannot yet create additional automations. There is no lead scoring, branching or multi-channel orchestration; broader automation runs through Zapier or n8n.
Every post and page has meta title and description with a search preview, Open Graph and X card fields and a canonical URL, while Ghost generates XML sitemaps and Article/schema.org JSON-LD automatically and supports bulk redirects (including regex, 301/302) via an uploaded YAML or JSON file. There is no structured data authoring, hreflang, redirect UI or on-page recommendations, and SEO fields are exposed through the Content API for headless use.
Since July 2026 Ghost can generate llms.txt and llms-full.txt and serve a Markdown version of each post, excluding members-only content, on top of automatic JSON-LD. Per-bot crawler controls rely on editing robots.txt in the theme and there is no AI citation or referral reporting, so it lands in the one-or-two-native-features band.
Ghost's integrations directory lists about 108 entries plus Zapier (5,000+ apps) and n8n, and a theme marketplace with hundreds of themes. Most listings are snippet or embed instructions rather than installable apps, so quality is below a 50-integration marketplace of real connectors.
Members are native: visitors register and sign in with passwordless magic links through Portal, manage their account, plan, billing and newsletter preferences, comment, and see content gated by member status or tier, with theme helpers keyed to the logged-in member. There is no social login or CIAM federation (Auth0, Okta, Azure AD B2C) for members, which keeps it below 75.
Ghost ships two well-structured REST APIs — Content API (public, read-only, fully cacheable) and Admin API (authenticated read/write) — with dedicated reference pages for parameters, filtering, pagination, errors and accept-version versioning. No GraphQL in Ghost 6.x and none planned; community wrappers are unsupported. The docs site moved to Mintlify but publishes no OpenAPI spec (docs.ghost.org/openapi.json 404s) and renders no interactive request panel, so the missing GraphQL layer and absent playground keep it mid-band for well-designed REST.
The Content API remains fully cacheable and Ghost(Pro) fronts every install with Fastly including WAF, DDoS mitigation and automatic rate limiting. Ghost 6.0 removed `?limit=all` and imposed a hard 100-item page cap on every endpoint, with the docs advising callers to add their own delays between paginated requests to avoid host fair-use policies. No published rate-limit numbers, no sync/delta endpoint for bulk extraction, and the pagination ceiling adds real friction to large migrations.
JavaScript is still the only first-class language — @tryghost/content-api 1.12.12 (213K downloads/mo) and @tryghost/admin-api 1.14.13 (123K/mo), both republished 2026-09-21. Official language coverage widened in 2026 with `aioghost`, an async Python client for the Admin API in the TryGhost org (PyPI 0.4.29, 18 releases, 40K downloads/mo), plus the `@tryghost/ghst` CLI (0.17.4) which exposes the full Admin API from the terminal and as an MCP server. Still nothing official for Ruby, Java, .NET, PHP or mobile, and the Python client is pre-1.0 and Admin-only, so this sits at the bottom of the 2–3 official SDK band.
The integrations directory lists roughly 100 distinct entries spanning analytics, email, membership, payments, social, automation, object storage (S3, Azure, Backblaze) and search, with Zapier extending reach further, and Ghost 6 pulls ActivityPub and share buttons into core. Most listings are configuration guides for third-party services rather than installable apps, and there are no commerce, DAM or translation categories at all. Enough breadth for publishing, well short of DXP category coverage.
Through 6.65 Ghost still has no App Framework: no custom admin UI, no sidebar widgets, no custom field editors and no server-side hooks — extension means themes, webhooks and the Admin API. The May 2026 in-browser theme code editor and June 2026 admin toolbar improve theme-authoring ergonomics but neither exposes an extension point for third-party code. The v6 split into separate services (ActivityPub, Tinybird analytics) is Ghost's own architecture, not a plugin SDK.
Ghost(Pro) now sells SSO — the pricing feature matrix lists 'SSO (Single Sign-On): Enable enterprise-grade authentication with SSO support for SAML, OAuth, and other identity providers', marked No on Starter/Publisher/Business and Yes only on the unpriced Custom plan. Device verification (email code from any unrecognised device) is on by default across all plans and email 2FA can be enforced on every login. The caveats are heavy: SSO is sales-gated and undocumented anywhere in the developer docs or help centre, unavailable to self-hosters, has no SCIM, and the only second factor is email — with two separate 2FA bypasses disclosed in 2026 — so this lands at the floor of the Enterprise-only band.
Still exactly five global staff roles — Contributor, Author, Editor, Administrator, Owner — with no custom role builder, no content-type scoping, no field-level permissions and no instance-level ACLs. The docs state outright that Ghost considers all staff users trusted by default and recommends splitting admin onto a separate domain if they are not. Workable for a small editorial team, unusable for segmented or multi-tenant access.
GDPR posture is genuine and self-serve: a publicly available DPA at ghost.org/dpa, a dedicated GDPR help page, and every Ghost(Pro) server located in Amsterdam — EU residency by default rather than as a paid option. There is still no SOC 2 Type 2, ISO 27001 or HIPAA BAA from the Ghost Foundation, no trust centre, and the security-and-data-practices page has not been updated since 2023, so this stays in the GDPR-only band.
2026 brought an extraordinary defect wave: 61 GitHub security advisories against TryGhost/Ghost — 3 critical and 19 high — against 1 advisory in 2025 and 1 in 2024, including SQL injection in the Content API (CVE-2026-26980), two theme-driven RCEs, cache-poisoning XSS (CVE-2026-53943), unauthenticated staff enumeration and multiple restricted-content bypasses, with 35 of them disclosed in August–September alone. Disclosure quality is excellent — each advisory names affected and patched versions, releases ship weekly, and the policy commits to acknowledging within a week and fixing criticals within a month — but there is no bug bounty, only a security@ inbox whose triage scope explicitly excludes trusted-user XSS and privilege escalation. No known breach, but the patch tempo this demands is a real operational cost.
Both paths are real: MIT-licensed self-hosting via Ghost-CLI on a narrow supported stack (Ubuntu 22/24/26 LTS, Node 22, MySQL 8.0/8.4, NGINX, systemd) or the newer Docker Compose tooling, and Ghost(Pro) managed SaaS from $15/mo. Self-hosters keep SSH and database access and the ability to modify core, which Ghost(Pro) does not offer. No private-cloud or dedicated-instance tier for regulated buyers and no region choice on Ghost(Pro) — every server is in Amsterdam — with a dedicated IP the only Custom-plan infrastructure concession.
The 99.9% uptime guarantee with 5%-per-hour service credits is real but narrowly gated, and Ghost's two first-party sources disagree on how narrowly: the current pricing matrix shows 'Uptime SLA' as No for Starter, Publisher and Business with 99.9% only on the Custom plan, while the SLA legal page — last updated May 2019 — says it covers Business and Enterprise. Either reading leaves most paying customers with no contractual uptime commitment, credits must be claimed in writing within 30 days and are capped at the monthly fee, and self-hosters have no vendor SLA at all. A public status page exists.
The hosting docs now state the ceiling explicitly: 'Clustering or sharding is not supported' — the only sanctioned way to scale Ghost is a CDN and caching layer in front of a single instance, which the docs claim carries billions of requests a month. Ghost 6 did move ActivityPub and web analytics out into separate services, but analytics is built on Tinybird (a third-party managed ClickHouse service, optional even in the Docker install) rather than something Ghost operates, and the hosted ActivityPub service caps self-hosters at 2,000 followers, 2,000 following and 100 interactions/day. No published entry counts, concurrent-user or API-throughput limits, and no app-tier horizontal scaling.
Tooling improved on both sides: self-hosters get a single-command `ghost backup` that zips the full site plus documented MySQL/content-folder procedures, and Ghost(Pro) lists full site backups as an included feature, with JSON content, CSV member and analytics exports available on demand from admin. The gaps are structural — no RTO or RPO published, no multi-region failover from a single Amsterdam datacenter, no customer-triggered point-in-time restore, and Ghost states that its full site archives 'are not provided for service continuity and are not provided as backups', must be requested from support, and are unavailable once an account is cancelled. The JSON export also omits email analytics, member engagement data and comments.
Developers can run a real local instance several ways: Ghost-CLI in development mode (SQLite3 supported for dev only), or the Docker Compose tooling that reproduces the production stack including Caddy, MySQL and optionally ActivityPub and analytics. The 2026 additions are substantive — the official `@tryghost/ghst` CLI does full Admin API CRUD with JSON/jq output and site aliases, there is an official VS Code extension with Handlebars hover docs, autocomplete and snippets, and GScan validates themes before upload. Held below the high band because the Docker path is still labelled a preview and `ghst` is pre-1.0 and absent from the documentation site.
First-party automation exists and was previously under-credited: TryGhost publishes action-deploy-theme (391 stars), a GitHub Action that packages and deploys themes through the Admin API, plus action-update-posts for scheduled content operations, and the new `ghst` CLI is built for scripting with `--json`/`--jq` output and named site aliases that can target different instances per command. What is still missing is the substance of the band above — no managed dev/staging/prod environments, no content-model migration tooling, no branch-per-PR content environments and no API-driven environment operations, so promoting anything beyond a theme remains a hand-rolled exercise.
docs.ghost.org has been rebuilt on Mintlify with a clean Content API / Admin API / themes / hosting structure, a maintained breaking-changes catalog, fourteen platform migration guides, and machine-readable llms.txt plus per-page .md endpoints that make it unusually easy for AI tooling to consume. Three gaps keep it mid-band: no interactive playground or published OpenAPI spec, code examples are JavaScript-only, and the headless framework guides have gone stale — Next.js and Nuxt sit alongside Gatsby, Gridsome and VuePress with no Astro, SvelteKit or Remix guide, while the `ghst` CLI shipped in 2026 with no docs-site page at all.
Both official SDKs were republished on 2026-09-21 and still ship no bundled type declarations — neither @tryghost/content-api 1.12.12 nor @tryghost/admin-api 1.14.13 declares a `types` entry — so TypeScript consumers fall back to @ts-ghost (community, Zod-based, v5.0.0, ~10K downloads/mo). The wider picture improved: Ghost core is now majority TypeScript, the new `ghst` CLI is TS-native, and an official VS Code extension exists, though it covers Handlebars theme syntax rather than API types. No codegen from the content model, which matters less here since Ghost's schema is fixed, but the untyped official clients are the binding constraint.
Ghost tagged 76 releases in 2026 through 23 Sept (7-11 per month, effectively weekly minors from v6.41 in late May to v6.65 on 22 Sept) on 5,803 commits in the trailing 52 weeks, alongside named product launches roughly twice a month: gift subscription improvements (27 Aug), email sequence analytics (7 Aug), AI-search optimization (16 Jul), publisher gift links (6 Jul), email sequences (24 Jun) and the admin toolbar (18 Jun). Headline announcements did decelerate in Q3 — four per month in Apr-Jun, two each in Jul and Aug, none yet in September — but the underlying tagged-release train never slipped a week. Not higher because the September gap in user-visible features shows the product cadence is lumpier than the commit cadence.
Ghost runs two complementary streams: ghost.org/changelog carries dated, tagged product posts (New / Improved / Beta) with screenshots, while every GitHub release ships categorized bullets (🎨 improved, 🐛 fixed), per-change contributor attribution and a compare/vX...vY diff link — v6.65.0 lists ten discrete fixes this way. A standalone Breaking Changes catalog covers every major from 1.0 to 6.0 with explicit remediation steps, backed by an Updates & Versions guide. Not higher because the two streams never join up: no single view surfaces breaking changes per release, and the ~weekly minors carry no migration notes at all.
Ghost's product doc states the core team maintains a broad 1-2 year roadmap but refuses to publish it — "we tried it and it turned out to be more distracting than helpful" — pointing users at GitHub and the changelog for direction instead. A forum Ideas board with upvoting exists (911 topics) but Ghost explicitly disclaims it: "it's not a democratic system" and votes don't decide what ships, and it draws only about one new topic a week. Not higher because the rubric reserves 70+ for a published roadmap with community voting, and Ghost has the voting without the roadmap; not lower because direction is genuinely legible through an open repo and a frequent changelog.
Ghost follows semver and forces migrations rarely — only two majors in four years (5.0 in May 2022, 6.0 in Aug 2025) — each documented in a permanent Breaking Changes catalog with per-change remediation and explicit "best time to update" guidance, and theme compatibility is checked automatically by GScan. Ghost 6.0's breaks were modest in scope: removal of ?limit=all, Node 22 only, AMP removal, a few dead Admin API endpoints. Not higher because there are no codemods for API consumers, no dated deprecation-window policy, and ?limit=all now silently truncates to 100 items rather than erroring — a behavioral break integrations can miss entirely.
TryGhost/Ghost carries 55,406 GitHub stars (up roughly 15% year over year from ~48K), 11,982 forks and 369 lifetime contributors — the largest star count of any CMS in this dataset — with @tryghost/content-api pulling 212,782 npm downloads a month and Ghost's own live dashboard reporting 100M+ installs and 30,579 paying customers. Comfortably past the 20K-star, high-download threshold for the top band. Not higher because the community is publishing-niche rather than general-purpose: forum participation is thin for the install base (108 active posters in 30 days) and Stack Overflow volume is modest next to WordPress or Drupal.
The raw throughput looks excellent — 5,709 PRs opened and 4,522 merged in the last 12 months, and 165 of 189 filed issues closed (87%) — but a 300-PR sample resolves to just 31 unique authors dominated by eight core staff (9larsons, EvanHahn, acburdine, rob-ghost, kevinansfield), so this is vendor velocity rather than community contribution. The forum is genuinely quiet for a platform with 30,579 paying customers: 71 new topics, 510 posts and 108 active posters in the trailing 30 days. Lowered from the prior 65 because measuring authorship rather than PR volume shows outside participation is much thinner than the aggregate implies.
The Experts directory lists roughly two dozen shops — largely solo developers and theme studios (ElectronThemes, Haunted Themes, Themeix, Bright Themes) — filterable by minimum budgets starting at "$200 or less," which sizes the engagement model accurately. The separate Partners page is a sponsor thank-you list (DigitalOcean, Fastly, Tinybird, Zapier, Shopify, Segment), not an SI network, and despite nav copy calling them "certified Ghost developers" there is no certification or exam program anywhere on the site. Lowered from 45 because reading the actual directory shows no mid-market or enterprise SI coverage at all, which is real delivery risk for anything beyond a single publication.
Ghost sustains a healthy informal content ecosystem — a large third-party theme market, steady tutorial and YouTube coverage, and heavy comparison content driven by the Ghost vs Substack / Beehiiv / WordPress search battleground that Ghost itself markets into. Not higher because there is no Ghost conference, no meaningful presence on Udemy or Pluralsight, and a large share of the third-party material is affiliate listicle content rather than technical depth. Held at the prior score: no new evidence either way this cycle, and review-aggregator sources were unreachable.
Ghost runs on Node.js with Handlebars themes and an Ember admin, so generalist JavaScript developers transfer in, but Ghost-specific supply is thin: the vetted Experts directory holds roughly 24 shops, only about 31 developers authored merged PRs in the past year, and there is no certification program, no Ghost conference speaker roster and no Stack Overflow developer survey presence. Lowered slightly from 55 because the specialist pool measured directly is smaller than the prior estimate implied. Not lower because the underlying stack is mainstream and theme work is accessible to any front-end developer.
Ghost publishes live company metrics, and they show real acceleration: 30,579 active customers on $11,099,649 ARR ($924,970 MRR) with 2.92% net churn, and the public ARR series runs $8.57M (Jul 2025) to $11.02M (Jul 2026) — up 28.7% year over year, versus a 2023 stretch where ARR sat flat around $6.3M for six straight months. Product expansion tracks the revenue: gift subscriptions, email sequences, member segments and AI-search optimization all shipped in 2026. Not higher because this is SMB and creator volume growth — there is no case-study program, no enterprise logo announcements, and no analyst-visible upmarket motion.
Ghost Foundation is a non-profit whose constitution bars it from being bought or sold, takes no VC, donations or grant funding, and is verifiably profitable at $11.1M ARR with 2.92% net churn — and it publishes that financial data as a live public feed going back to 2018, a level of transparency nothing else in this dataset matches. Headcount grew to 40 full-time staff with eight hires in 2026 alone, and the DPGA recognized Ghost as a digital public good in April 2026. Not higher because a 40-person team supporting 100M+ installs is a genuine capacity and bus-factor constraint, and the non-profit structure that removes acquisition risk also removes any capital cushion for a downturn.
Ghost holds a sharp, defensible position as the independent open-source publishing platform — 0% platform fees against Substack and Beehiiv, non-profit governance that cannot be acquired, memberships and newsletters in core, native ActivityPub federation shipped in 6.0, and July 2026 AI-search optimization — with DPGA digital-public-good status as outside validation. Not higher because Ghost has no analyst recognition whatsoever (no Gartner MQ, no Forrester Wave, no Peer Insights listing) and the positioning is deliberately narrow: no commerce, no multi-site, so it self-excludes from most DXP shortlists. Not lower because the differentiation is clear, consistently held for a decade, and backed by shipped features rather than roadmap.
G2, Capterra, TrustRadius and Gartner Peer Insights all returned HTTP 403 to this run, so no rating or review count could be re-verified this cycle; the score is held at the prior value, which placed Ghost at roughly 4.3/5 in the 100-300 review band (rubric 60-72). Known negative themes remain structural rather than operational — no e-commerce, no drag-and-drop page building, narrow scope, WordPress migration friction — with no reliability or pricing complaints surfacing on the forum. Confidence dropped from MEDIUM to LOW because nothing was independently confirmed; a watch item is the 61 GitHub security advisories published in 2026 against 1 in 2025, which puts self-hosters on a weekly patch treadmill but has not yet shown up in review-site sentiment.
ghost.org/pricing publishes the entire price ladder, not just entry points: a member slider exposes exact monthly and annual prices for Starter, Publisher and Business across nine audience bands from 1,000 to 100,000 members, alongside a 62-row feature comparison table and named add-on prices (custom SSL +$50/mo, custom subdirectory install +$50/mo). Only the Custom tier — above 100,000 members, SSO, 99.9% SLA, dedicated IP, invoice billing — is sales-gated. Not higher only because that top tier carries no published figure at all.
There is no Publisher→Business cliff: Publisher scales through nine member bands ($29 → $46 → $63 → $79 → $88 → $141 → $208 → $241 → $274/mo annual at 100k members), so a growing audience moves up in 30–60% steps rather than a 7x jump, and there is no bandwidth, API-call or email-send metering anywhere in the model (email sends are unlimited on every tier). The meter is total members, and free signups count the same as paying subscribers, so an audience that does not monetize still ratchets the bill; exceeding a band disables publishing in Ghost Admin until you upgrade, which is a hard stop rather than a billable overage. Not higher because Starter has a single 1,000-member band with no upgrade path inside the tier; not lower because every price on the ladder is knowable in advance.
The published comparison table shows Starter ($15/mo) excluded from the Admin API, webhooks, Zapier/n8n/custom integrations, traffic analytics, custom themes and paid subscriptions — it is a publishing-only tier with no automation surface, and it lost monetization in the July 2025 repricing while its price rose 67%. SSO, the 99.9% uptime SLA and invoice billing sit only on the sales-gated Custom plan, and even Business pays $50/mo extra each for a custom SSL certificate and a subdirectory install. Not lower because 2FA, device verification, backups, unlimited email sends and 0% transaction fees ship on every tier and the MIT self-hosted build has no feature gating at all; not higher because gating an uptime SLA and SSO behind a quote is exactly the pattern buyers get penalized for.
Monthly or annual billing is available at every tier, plans and billing frequency can be changed at any time from Ghost Admin with immediate effect, unused time credited and the new charge prorated, and cancellation is a self-serve link — plus a 14-day trial that is never billed at expiry, and Ghost staff state publicly that existing customers are always grandfathered when prices change. Against that, the ToS is explicit that all sales are final with no refunds, subscriptions auto-renew, there is no way to pause an account, and no nonprofit, education or startup discount program is published. Not higher because of the no-refund/no-pause posture and the absent discount programs; not lower because nothing in the exit path is punitive and the MIT self-hosted build is a permanent fallback.
Ghost(Pro) has no permanent free tier — only the 14-day trial — so the free path is the MIT-licensed self-hosted build, which is commercially permissive, feature-complete in core and now ships batteries-included Docker Compose tooling, with Ghost(Pro)'s hosted ActivityPub service free to self-hosters (capped at 2,000 followers and 100 interactions/day). That path still costs a server (Ghost recommends a 2GB/1CPU droplet for the Docker install), a domain and a Mailgun account for bulk email, and the Ghost-CLI install cannot run web analytics at all — parity requires the preview Docker stack plus a third-party Tinybird account. Not higher because nothing hosted is free forever; not lower because the self-hosted edition is genuinely production-grade rather than a crippled community build.
Ghost(Pro) goes from a no-card 14-day trial signup to a published post in minutes with hosting, CDN, SSL and newsletters already wired up, and Content API keys are issued immediately. Self-hosting is now a clone-plus-two-commands exercise on the Docker Compose tooling (`docker compose pull && docker compose up -d` brings up Ghost, Caddy and MySQL with automatic SSL), well inside an hour versus the older NGINX/MySQL/Node/systemd runbook. Not higher because the Docker path is still labelled preview and the Ghost-CLI stack remains the officially recommended production install.
Ghost's own migrations team quotes 7–21 days for a full managed publisher move — including a private staging site, integrity checks and 301 redirects — and self-service importers cover WordPress, Substack, Medium, Squarespace, beehiiv, Mailchimp and Newspack, so most sites never need a project at all. Custom Handlebars theme work adds roughly 1–2 weeks, and the platform's narrow scope (publishing, memberships, newsletters) caps scope creep. Not higher because the 7–21 day figure is vendor-published rather than independently sampled, and paid-member/Stripe migration is explicitly flagged as needing extra care.
The 24 vetted agencies and freelancers in Ghost's own Experts directory publish minimum project budgets ranging from $60 to $3,000, with a median around $425 and seven listing $100 or less — an order of magnitude below enterprise DXP engagement floors, and the directory's budget filter tops out at '$2,000 or less'. The stack is Node.js with Handlebars themes and standard REST APIs, with no paid certification gating who can build on it. Not higher because Handlebars is a niche templating language and the vetted pool is small in absolute terms (two dozen listed experts).
Ghost(Pro) bundles hosting, worldwide CDN, free SSL, automated backups and — unusually for a newsletter platform — unlimited email sends on every tier, so the plan fee is the whole infrastructure bill for most buyers. Extras exist at the margins: a custom SSL certificate or subdirectory install is +$50/mo each on Business, and self-hosting adds a server (2GB/1CPU droplet class), Mailgun for bulk mail and a Tinybird account if you want the native analytics. Not higher because those self-hosted add-ons and the paid SSL/subdirectory lines are real spend beyond the license; not lower because the bundled path is genuinely all-inclusive and cheap.
Every Ghost(Pro) tier including the $15/mo Starter carries fully managed service, automatic weekly updates, automated backups and threat/uptime management, so the subscriber's ops load is effectively zero. Self-hosted upkeep is a `git pull && docker compose pull && docker compose up -d` cycle under the new tooling, though enabling analytics or ActivityPub means running additional services (Tinybird, the ActivityPub service) alongside Ghost, Caddy and MySQL. Not higher because self-hosters still own MySQL, email deliverability and the growing multi-service footprint; not lower because neither deployment model needs a dedicated ops person for typical use.
Everything material exports self-serve in standard formats — content and settings as JSON, members as CSV including stripe_customer_id, themes as a zip, post analytics as CSV — and the MIT-licensed self-hosted build means the managed service can always be walked away from. The friction is that the admin export omits images and uploaded files: a complete archive requires emailing support@ghost.org before you cancel, cancellation deletes the site at the end of the billing cycle with no pause option, and moving paid subscribers and their Stripe relationships is explicitly flagged as needing care. Not higher because of the images-by-support-request gap and the hard delete on cancellation; not lower because no data sits in a proprietary format.
Ghost's resource surface is still one of the smallest in the dataset — the Content API exposes only posts, pages, authors, tags, settings and tiers, and the docs index (docs.ghost.org/llms.txt) confirms no new developer-facing modeling concepts arrived in the 2026 releases. Trimmed from 78 because the prior reasoning claimed 'no proprietary abstractions', which is not accurate: Ghost ships NQL (its own filter syntax, docs.ghost.org/content-api/filtering), routes.yaml dynamic routing, theme 'contexts', and ~40 Handlebars helpers — small and well-documented, but genuinely Ghost-specific re-learning.
Better than previously credited: ghost.org/tutorials is a genuinely tiered learning path (Fundamentals 5 → Level Up 13 → Do More 7, plus a 'Most helpful' set and 14 issues of a monthly 'Build with Ghost' newsletter), and the rebuilt docs (TryGhost/Docs, created Jun 2025) publish llms.txt, llms-full.txt and a .md rendering of every page, which makes AI-assisted onboarding unusually good. Capped below 75 because every tutorial teaches Handlebars theme work — there is not one headless/JS-framework tutorial — there is no in-console interactive tour beyond the Ghost(Pro) setup wizard, and no certification path.
The Content API is plain REST/JSON with an official JS client pulling 212K npm downloads/month, so the fetch layer is familiar — but the friction is larger than 70 implied. Neither @tryghost/content-api 1.12.12 nor @tryghost/admin-api 1.14.13 (both republished 2026-09-21) declares a `types` field, so TypeScript teams hand-roll types; the official Next.js guide still explicitly instructs 'Note this uses the pages router, not the app router' with TypeScript answered 'No'; filtering uses proprietary NQL; and the native theme layer is Handlebars. Offsetting: an official VS Code extension and the ghst CLI's MCP server mode.
Material regression: TryGhost archived gatsby-starter-ghost (1,090 stars), eleventy-starter-ghost (372 stars) and gatsby-source-ghost on 2026-01-19, leaving Ghost with no maintained first-party starter for any JavaScript framework, and the Vercel cms-ghost example last saw a substantive commit in April 2025 (pages router, React 18, Tailwind 3, @tryghost/content-api ^1.4.13). Held above the 25–45 'community-only' band because the native path is well served — TryGhost/Starter is an actively maintained theme starter, backed by ~20 official themes, GScan validation and the action-deploy-theme GitHub Action.
Headless integration is still two values — Content API URL and a key generated under Settings → Integrations — and Ghost(Pro) removes infrastructure config entirely. Self-hosting has grown: the official TryGhost/ghost-docker Compose stack now wires Caddy, MySQL 8, the ActivityPub service and Tinybird sync/deploy containers and requires DOMAIN plus two database secrets, but it is a single `docker compose up` with pinned image digests, and Ghost-CLI remains a one-command alternative, so the score holds.
Ghost's model is fixed in the schema, not merely opinionated: `posts.type` is validated `isIn: [['post','page']]`, `posts.locale` is annotated unused/reserved, and post revisions are capped at a non-configurable POST_REVISIONS_COUNT = 25. Correcting the prior evidence, which was wrong on both counts: TryGhost/Ghost#9020 is CLOSED (opened and closed Sept 2017, not open since 2015), and the custom fields Ghost shipped in 2026 are member metafields behind the `membersCustomFields` labs flag — they do nothing for posts. The offsetting reason this is not lower is that a fixed schema has no risky field-type changes, no field-count limits and no migration tooling to get wrong.
Nothing changed in 2026 — the 2026 changelog is entirely membership, newsletter and analytics work with no preview or visual-editing entry. Inside a Handlebars theme preview is native and zero-effort, but for a decoupled frontend the Content API remains published-only, so draft preview requires the server-only Admin API (JWT via jsonwebtoken) wired by hand into Next.js Draft Mode, and there is no preview page anywhere in docs.ghost.org/llms.txt to follow. The one starter that demonstrated draft mode (Vercel cms-ghost) is now stale, and Ghost offers no in-context/visual editing for headless frontends at all.
No exam or certification gates Ghost work — the Experts directory is a vetted-by-review partner list ('vetted for their years of experience and quality of work'), not a credential, and a generalist JS developer can consume the REST Content API immediately. Ghost-specific skill is confined to Handlebars, NQL and routes.yaml for the native theme path, and first-party tooling now actively lowers that bar: the TryGhost VS Code extension supplies Handlebars hover docs and autocomplete, and ghst exposes the whole Admin API to editors and agents over MCP. Not higher because the untyped SDKs push type-safety work onto the team.
Ghost remains the most solo-developer-friendly platform in the dataset: Ghost(Pro) eliminates ops entirely, Ghost-CLI or the official Docker Compose stack puts self-hosting within one person's reach, and the developer FAQ's own statement that Ghost 'doesn't support load-balanced clustering or multi-server setups of any description' means there is no scaling architecture to staff for. No solution architect, platform specialist or separate ops role is implied by the product.
The entire 2026 feature wave landed as admin-configurable, zero-developer capability — gift subscriptions and Publisher gift links, email sequences with their own analytics, dynamic saved member filters, comment threading/votes/pins, a new staff admin toolbar, and the one-toggle llms.txt/AI-search output — and theme Custom Settings let editors restyle without touching code. Held at 79 rather than higher because anything structural still needs a developer: a new page type, layout or URL structure means editing Handlebars templates or uploading a routes.yaml, and Ghost has no page-builder or drag-and-drop layout surface.
Ghost(Pro) applies the weekly releases automatically, and self-hosted upgrades remain a single `ghost update` command with `ghost backup` and built-in rollback — Ghost-CLI is still actively released (1.32.5 on 2026-09-09, 1.33.0-beta, ~12K npm downloads/mo) and docs.ghost.org/update still presents it as the supported path for all of 6.x. Major-version friction is contained by a published Breaking Changes catalog, the GScan theme validator, an EOL table (5.x ran 2022→Jan 2026) and the advice to upgrade at x.1.0; Ghost 6.0's actual breaking set was small (max 100 results replacing `?limit=all`, Node 22 only, AMP removed). Not higher because releases land weekly, headless integrations had to be rewritten for pagination with no shim, and the Docker Compose install that replaces Ghost-CLI at 7.0 is still labelled a preview.
The GitHub advisory feed shows 61 Ghost advisories published in 2026 (3 critical, 19 high) against 1 in 2025, with 35 landing in Aug–Sep alone in batches tied to the weekly release — so self-hosters are effectively on a weekly patch treadmill, and CVE-2026-26980 (Content API SQLi, versions 3.24.0–6.19.0) was exploited against 700+ unpatched sites. Patch mechanics themselves are good: fixes ship as urgent out-of-band releases, every GHSA names affected and patched versions, Ghost(Pro) is patched for you, and the official Docker image is now built by Ghost and published the same day as the release (6.65.0 tags dated 2026-09-22, matching the GitHub release). Held to the low 60s by the sheer advisory volume and by February 2026, when 6.19.1's SQLi fix was disclosed while Docker Hub still served 6.18.2 — a failure Ghost's CEO publicly owned before hiring a platform team to fix the pipeline.
The Ghost-CLI retirement is real but far less imminent than it reads second-hand: the official announcement (forum, 2026-08-18) deprecates it *at Ghost 7.0*, which Ghost's own platform lead says is "not until 2027 at least" — a 16+ month runway with a promised documented migration path, feature parity for multi-site and local theme development, and continued urgent security fixes for the CLI. Ghost's forced-change history is otherwise light: published EOL dates with ~3.5-year major-version lifecycles, and Ghost 6.0's only hard cutover was capping API responses at 100 items. Not 70+ because that cutover shipped with no compatibility shim, Ghost(Pro) auto-upgraded every v5 site with no opt-out, and 7.0 will also make structural breaking changes to the Docker image (content volume moves to /home/ghost/content, container runs as a `ghost` user).
Ghost deliberately targets one narrow supported stack — Ubuntu LTS, Node.js 22, MySQL 8.0/8.4, NGINX, systemd, 1GB RAM — with no search server, cache server or queue required, and dependencies are continuously scanned via GitHub tooling plus `yarn audit`. The official Docker image moved from Docker-community maintenance to the Ghost core team in mid-2026, removing the dependency-lag problem that burned self-hosters in February. Trimmed from the mid-70s because Ghost 6.0 pushed two capabilities out to separate services: web analytics requires a Tinybird account or a self-managed Tinybird container, and ActivityPub beyond 2,000 followers / 100 interactions a day means self-hosting a second service through the preview Docker Compose tooling.
Ghost Admin ships a genuine built-in observability layer for the publishing workload: native cookie-free web analytics with real-time visitor counts, per-post analytics, newsletter open/click health, member and MRR growth, plus a seven-component public status page (Ghost.org, Pro Websites, Admin, Social web, Analytics, Email delivery, Stripe — all 100% Jun–Sep 2026) and 24/7 threat-and-uptime management on every Ghost(Pro) plan. Webhook health is covered too, contrary to the prior scoring: Ghost persists `last_triggered_at`, `last_triggered_status` and `last_triggered_error` per webhook and surfaces them in Admin, auto-destroying endpoints that return 410. Capped at 65 because there is still no APM, tracing or metrics endpoint — config exposes only file/stdout logging with rotation — and self-hosters must supply their own uptime, server and deliverability monitoring plus a Tinybird instance to get the analytics at all.
Ghost's content surface is small by design — two post types, tags and internal tags, no localization and no custom fields on posts — so there is comparatively little to govern, and Admin carries a History log of staff actions plus bulk post operations, with the first-party `ghst` CLI and `TryGhost/action-update-posts` available for scripted bulk content work. Newsletter delivery, member management and subscription workflows are all native rather than bolted on. Held below 60 because Ghost ships none of the automated hygiene tooling the rubric rewards: no broken-link detection, no orphan-content alerts, no content-expiry or scheduled-unpublish workflow and no content health dashboard, so governance is entirely editorial discipline.
Ghost(Pro) fronts every site with Fastly (CDN, WAF, DDoS mitigation, automatic rate limiting) and a 24/7 on-call team, and the status page has logged 100% uptime across all components for the last quarter — effectively zero performance management for a hosted publisher. Self-hosted Ghost rarely needs query or index tuning at moderate scale, but docs are explicit that the *only* supported scaling strategy is a CDN and cache layer: "Clustering or sharding is not supported." That documented ceiling — the app tier does not scale horizontally, so cache-missing traffic like logged-in member requests has no other answer — is what pulls this back from the low 70s.
Ghost's published support matrix is better than previously credited — email support is included on the $15/mo Starter plan and up, rising to Priority support on Business and an account manager on Custom — so basic vendor support is not Enterprise-gated. But no plan carries a published response-time commitment, the only SLA is a 99.9% *uptime* SLA exclusive to the unpriced Custom plan, there is no phone or chat channel, self-hosters get no vendor support at all (the hosting comparison lists their support channel as "Forum"), and Ghost's own contact page routes users to the forum as "the fastest way to get help" from a 40-person company. Prior review sentiment about canned, slow replies could not be re-verified (G2/Capterra/Trustpilot block the runner), so it is carried at reduced weight; the Enterprise-gated tiering keeps this inside the 40–60 band.
The Ghost Forum carries 19,018 topics / 144,290 posts with 71 new topics, 510 posts and 373 active users in the last 30 days, and core staff post directly on operational threads — the new platform team (acburdine, 9larsons) announced the Ghost-CLI roadmap there and CEO John O'Nolan published a full post-mortem of the February Docker security failure in-thread. Ghost officially designates the forum as the primary support route, and it is the only support channel self-hosters have. Not higher because absolute volume is modest next to WordPress and roughly one in five recent topics still draws no reply at all.
Ghost ships on a reliable weekly cadence — 12 releases between v6.55.0 (2026-07-31) and v6.65.0 (2026-09-22) — marks security releases urgent and ships them out of band, and keeps a tight public backlog of just 37 open issues (12 opened vs 5 closed in the last 30 days). The February 2026 Docker failure produced a structural response rather than silence: a public post-mortem from the CEO, two platform engineers hired, revised incident-response and security-disclosure processes, first-party ownership of the Docker image, and Docker tags that now publish the same day as the release. Not higher because that failure is recent, the 2026 advisory volume means fixes keep arriving weekly, and much non-critical triage happens in an internal tracker, so the small public backlog partly reflects routing rather than resolution.
Marketers can compose landing pages from cards without a developer: Ghost's own card documentation states that full-width header cards are "stackable, allowing you to build dynamic landing pages," and pairs them with signup cards (inline membership forms with design options), call-to-action cards, button cards, galleries and toggles. Title and feature image can be removed from any page. What is still missing is a layout canvas — the page chrome, grid and templates come from the Handlebars theme, and creating a genuinely new layout means editing theme code. The May 2026 in-browser theme editor ("Edit code") shortens that loop but is a code editor, not a visual builder. Sits at the low end of the 50–65 band: marketers can build and populate pages from a rich card palette but cannot author new layouts.
Materially stronger than at last review. Ghost shipped an Automations suite through 2026: welcome emails (Feb 2026), then multi-step email sequences in public beta (Jun 2026) built on a drag-and-drop automation canvas with send-email and wait-for-duration steps, then per-step analytics (Aug 2026) showing sends, opens, clicks and top clicked links inside the canvas. Audience targeting improved alongside it — saved member views (May 2026) pin named segments to the sidebar, and dynamic filters (Jun 2026) add relative-date operators ("in the last 30 days", "in the next 30 days") so a saved view stays a live audience. Combined with scheduled publishing, newsletter segmentation by tier/label, and the Offers system, this is real campaign tooling rather than scheduled publishing alone. It still falls well short of 60: the automations are behind a Labs beta flag, there are only two triggers (new free member, new paid member) and two actions, the only channel is email, and there is no content calendar, no campaign-level archive/lifecycle, and no cross-channel campaign coordination.
Among the strongest built-in SEO of any platform at this tier, and 2026 extended it to generative search. Existing core: auto-generated and auto-updated XML sitemaps, JSON-LD structured data on posts and pages, canonical tags, per-item meta title/description and OG/Twitter overrides in the post settings panel, and a redirects manager under Settings → Advanced. July 2026 added native GEO output — Ghost serves llms.txt and llms-full.txt at the domain root and a Markdown rendering of any public post by appending .md to its URL, generated by the platform rather than a plugin. All of it is bundled; no SEO plugin exists or is needed. Held below 80 because Schema.org coverage is essentially Article-type only, there is no SEO field validation or scoring, the redirects UI is a plain YAML/JSON editor, and GEO output is off by default on existing sites.
Previously under-scored. Ghost has native UTM awareness: member sources records ref, source or utm_source query parameters at signup or paid conversion and attributes the member to that campaign, with custom sources documented specifically for paid promotions and influencer partnerships; outbound link tagging is a separate toggle. Lead capture is native — embeddable signup forms for external pages, in-content signup cards, and call-to-action cards with sponsor labels and buttons. The Offers system produces shareable discount and free-trial offers with custom coupon codes, a per-offer landing URL that opens Portal with the offer applied, and redemption counts on the offers dashboard; retention offers (Mar 2026) intercept cancellations with a discount and can be filtered on in the member list. Per-post analytics closes the loop with a Members figure counting signups and paid conversions attributable to that post. Short of 65 because there is no general-purpose form builder — contact, survey and lead-gen forms still mean Typeform/Formspree/Jotform via embed — and no ad-platform conversion API integration.
The previous "zero native personalization" finding no longer holds. Ghost has rule-based audience targeting on individual content blocks: HTML cards carry visibility settings behind an eye icon that show or hide the block for public visitors, free members or paid members, and the call-to-action card targets the same three audiences while also choosing whether it renders on the site, in the newsletter, or both. The announcement bar has the same three-way visibility control. Email content cards do merge-field personalization with a first_name placeholder and a custom fallback. Saved and dynamic member views turn filter rules into live audiences to send against. This is genuine, native, rule-based targeting — but the only rule dimension is membership state. There is no geo-targeting, no device or time-of-day rules, no behavioral or affinity scoring, no AI recommendations, no experience variants at page level, and no CDP integration beyond pasting a Segment snippet into code injection. Scored just below the 40–60 basic-rule-based band to reflect how narrow the rule vocabulary is.
Still no native content experimentation. There are no headline variants, no layout tests, no CTA experiments, no statistical significance reporting and no auto-winner selection anywhere in the product or the 2026 changelog — even the new automation canvas has only send and wait actions, with no split or branch. Ghost publishes an integration guide for VWO covering A/B and multivariate tests, but the mechanism is pasting the VWO SmartCode into site-wide code injection, which is the same thing you could do on any HTML page and does not constitute tight integration. Newsletter subject-line testing remains a community practice, not a feature. Scored slightly above the floor only because a documented, vendor-listed experimentation path exists.
Fast for post-shaped content. The Lexical editor composes from a slash-menu card palette, autosaves without reloads, and goes draft→schedule→publish in one action; reusable snippets, a built-in Pintura image editor (crop, adjust, annotate in place, no round-trip to Photoshop), and internal linking via cmd+K search or @-mention against published posts, pages, tags and authors all remove steps from the writing loop. Newsletters are composed and sent from the same screen, and automation emails reuse the same editor. Email clipping warnings (Jan 2026) catch a rework cycle before send. The in-browser theme editor removes the download-unzip-edit-zip-upload loop for small template changes. Still capped by the absence of template cloning, bulk content operations, and any configurable approval shortcut, and new page layouts remain a developer task.
Ghost authors once and renders to more channels than most CMS at this tier, with real channel-specific variants rather than one blob everywhere. Channels: web, email newsletter, the social web via ActivityPub (posts reach Bluesky, Threads, Mastodon, Flipboard, WordPress and other fediverse clients, with follower migration from an existing Mastodon account added Jun 2026), RSS, and as of Jul 2026 a Markdown/llms.txt surface for AI agents. Members-only podcasts ship via an official Transistor.fm integration (Mar 2026), and audio and video are hosted natively up to 1GB. Variants are first-class: email content cards render only in the newsletter, public preview dividers split what web visitors versus members see, and CTA cards pick site, newsletter or both. Held below 70 because there is no SMS, push or in-app channel, the content model is fixed to post/page with no per-channel renditions of structured fields, and channel choice is per-card rather than per-model.
Clears the 65+ bar: content performance dashboards live inside the CMS, not an external tool. Site-level Analytics gives real-time visitors, unique visitors and total views, top content split by posts/pages, top sources, and country breakdown, cookie-free via the Tinybird/ClickHouse partnership, filterable by date range and by audience segment (public visitors, free members, paid members) — with a searchable filter system added Jan 2026. Per-post analytics adds Overview, Web traffic, Newsletter and Growth tabs: unique visitors, total views, opens, clicks, top clicked links, locations, sources, and members/paid conversions attributable to that post, plus live reader count. Email sequences carry their own step-level analytics, and audience feedback collects per-post reader sentiment. Third-party paths (GA, Plausible, Fathom, Matomo, Amplitude, Segment) exist but are code-injection guides, not connectors. Not higher because there is no content decay or staleness alerting, no heatmaps, no funnel or path analysis, no export/API for the analytics data, and self-hosters must supply their own Tinybird for web traffic.
Consistency comes from the theme, which every post and page renders inside, plus design settings for colors, fonts and logo. Newsletter design settings (fonts, colors, button styles, headers, logos) now propagate beyond newsletters — welcome emails got their own design settings in Apr 2026, and the automation email template explicitly reuses the newsletter design controls so one styling pass covers site, newsletter and every automated email. What is absent is enforcement at the content layer: authors can drop arbitrary HTML cards, set per-card background colors on callouts and CTA cards, pick button styles and image layouts, and embed anything. There is no locked token set, no approved component palette, no restricted-override mode, and no pre-publish brand check. Squarely in the 35–55 component-consistency-without-enforcement band.
Three layers, all native. Metadata: OG and Twitter/X card markup generated automatically for every post and page, with per-item overrides. Push-to-social: the ActivityPub profile publishes each post to the social web, reaching Bluesky, Threads, Mastodon, Flipboard and WordPress followers, and Jun 2026 added migration of an existing following from another social web account into the Ghost profile, plus native Social Account settings for LinkedIn, Bluesky, Threads, Mastodon, TikTok, YouTube and Instagram (previously theme edits were required for anything beyond X and Facebook). Reader-driven sharing: the Apr 2026 native share buttons add a share modal on posts and a share link in newsletters, built into every official theme with a #/share hook for custom themes. Held under 65 because there is still no social scheduling or composer inside Ghost (Buffer is a separate code/embed guide), no UGC embed or social-proof widget tooling, and no per-network post variants.
Previously under-scored on two counts. Ghost hosts video and audio natively — video cards accept .mp4/WebM/.ogg up to 1GB with custom thumbnail, loop and three display widths, audio cards accept .mp3/.wav/.ogg, and file cards take any type up to 1GB — so "video via external embeds only" was wrong. Transforms are also core, not a Cloudinary add-on: Ghost generates resized derivatives from theme-declared image_sizes and converts to WebP and AVIF via img_url, with resize and srcsets on by default. On top of that the editor ships a built-in Pintura image editor for cropping, adjustment and annotation, plus an Unsplash browser and galleries of up to 9 images, and storage adapters exist for S3, Azure, GCS and Backblaze. It is still not a DAM: no folders or collections, no asset tagging, no asset search, no usage tracking, no rights or expiry management, no focal points, and image sizes must be pre-declared at theme-config time rather than requested per URL. Solidly in the 35–55 basic-library-with-transforms band.
Unchanged and still the weakest part of the marketing story. Ghost manages one language per instance. Its translations cover public-facing components only — Portal signup/login, search, comments, newsletter templates — community-translated into roughly 60 languages, with the i18next groundwork for official theme translation merged in Jan 2026. That is UI-string localization. There is no multilingual content management: the posts table has a locale column annotated as unused and reserved for future features, so no locale variants, no translation workflow, no transcreation, no locale-specific campaign variants, no market-level scheduling, and no regional legal or cookie disclaimer management. Ghost's own FAQ still points multilingual sites at separate instances per language or third-party layers, and its Weglot and Transifex integrations are JavaScript snippet injection, not content translation.
Breadth is real, depth is not. The integrations directory covers every MarTech category — CRM/marketing automation (HubSpot, ActiveCampaign, Drip, ConvertKit, Mailchimp, MailerLite, Intercom), CDP (Segment), ad platforms (Google Ad Manager, AdSense), analytics (Amplitude, Matomo, Plausible, Fathom, Hotjar, Tinybird), forms (Typeform, Jotform, Formspree, Tally, Wufoo), referral/growth (FirstPromoter, Viral Loops, Churn Buster), consent (CookieYes) and orchestration (Zapier, Pipedream) — roughly 95 documented guides. But checking them individually shows the pattern: Segment, VWO, Weglot and most others are "paste this snippet into code injection," and HubSpot/Mailchimp sync through Zapier triggers rather than two-way native connectors. The genuine event layer is Ghost's own webhooks, which do have HMAC signing, a retry limit of 5 and last_triggered status on each hook — better than a fire-and-forget webhook, and enough to drive orchestration. Mid 35–55 band: many integrations plus a credible webhook/Zapier event layer, but not one deep pre-built MarTech connector.
No product content modeling, and Ghost says so plainly. Posts are hardcoded to two types (post and page) with no custom post fields — the 2026 custom-fields work shipped for members, not posts — so there are no product content types, no SKU or variant fields, no attribute modeling and no product taxonomy beyond generic tags. The editor's Product card renders a single product as an image, description, button and star rating, positioned in the docs as "add your favorite recommendations to any post" — an affiliate/editorial highlight, not managed product content. Ghost's own FAQ states it will not provide inventory management tools.
No merchandising tooling of any kind. No category or catalog management, no cross-sell or upsell content rules, no search-result merchandising, no product spotlight or collection curation. The nearest things Ghost has — the Product card and the Recommendations feature — surface individual editorial picks and other publications respectively, neither of which is product merchandising. Nothing in the 2026 changelog touches this.
Official integration pages exist for Shopify, BigCommerce, Snipcart, X-Cart, Gumroad and PayPal, and all follow the same pattern: generate a buy-button or cart snippet in the commerce platform and paste it into a Ghost HTML card or code injection. There is no product data sync, no product picker in the Ghost editor, no API federation, no shared identity between Ghost members and commerce customers, and no co-authoring of content and product. Ghost's deep commerce integration is with Stripe, but that powers its own subscription memberships rather than a storefront. Firmly in the 20–35 embed-code tier.
Buying-guide style content is achievable and slightly better supported than at last review: the Product card gives a structured image/description/price-button/rating block, header cards build magazine-style sections, galleries and native video carry the visuals, and HTML cards drop in buy buttons — with per-card audience visibility so a paid-member-only recommendation block is possible. But it is not first-class shoppable authoring: the Product card's fields are typed by hand with no connection to live product data, there is no inline product picker against a catalog, no price or stock sync, no lookbook or shop-the-look template, and no native purchase CTA that carries a cart. Top of the 15–30 band edging into 35–55.
Ghost has no shopping cart and no control over transactional content. Its own FAQ confirms there is no built-in cart; wherever a cart exists it belongs to Shopify, Snipcart or X-Cart, rendered from an embedded snippet Ghost cannot address. No CMS-managed trust badges, shipping callouts, cart upsell banners or post-add modals. The one checkout surface Ghost does own is Portal, its membership signup and payment flow, which can display an offer and customized tier messaging — but that is subscription checkout for Ghost's own product, not commerce checkout content.
No post-purchase content management for commerce. Order confirmations, delivery tracking, product onboarding and review solicitation all sit in the commerce platform with no Ghost hook. Ghost's 2026 automation suite does send templated post-conversion emails — welcome emails and multi-step sequences triggered by a new paid member — but the trigger is a Ghost subscription event, not a commerce order event, and there is no order data to template against.
The one applicable mechanism is access gating: post access levels (public, members-only, paid-members-only, or specific tiers) plus per-card HTML visibility can gate a spec sheet or a technical document, and file cards can host downloadable PDFs behind that gate. Publisher gift links can grant one-off access to a gated asset without signup. That is generic content gating, not B2B commerce content — there is no account or organization model, no customer-specific pricing display, no quote-request flow, no catalog segmentation by account, and no contract or entitlement awareness.
Ghost ships a built-in site search covering posts, pages, tags and authors as a client-side overlay. There is no faceting, no filters, no synonym or stopword management, no search landing pages, no relevance tuning, no search analytics, and nothing that blends product results with content. For a commerce discovery use case it provides essentially nothing beyond finding an article.
Previously under-scored: Ghost does have a promotional content system, it just targets subscriptions rather than products. The announcement bar puts a site-wide promotional banner above any theme with custom copy, background color and audience visibility (logged-out visitors, free members, paid members, or any combination) — the docs name "special offers" as a use case. The Offers system creates percentage or fixed discounts and free trials per tier, each with a custom coupon code, a shareable URL that opens Portal with the offer applied, customizable headline and description, partner-specific codes, and redemption counts on the offers dashboard plus an archive. Retention offers fire at the cancellation step. Call-to-action cards promote a message to a chosen audience on site, in newsletter, or both. Held under 40 because the promo surfaces are not time-activated — the announcement bar is switched on and off by hand with no schedule or end date — there is no countdown timer component, and all of it applies to membership tiers rather than product pricing.
One storefront per Ghost install, full stop. Ghost(Pro)'s own help article states a subscription includes hosting for one publication and that multiple sites with their own domains require separate Ghost(Pro) accounts, each with its own subscription. Self-hosting means separate Ghost processes with separate databases. There is no shared product or editorial content layer across storefronts, and sharing anything means manual duplication or a custom pipeline against the Admin API. (Correcting the previous entry: GitHub issue TryGhost/Ghost#1484 "MultiSite" was opened and closed on 15 Nov 2013 within two hours — it is not an open request tracking this gap and should not be cited as one.)
Basic but genuinely native media: galleries up to 9 responsively optimized images, natively hosted video up to 1GB with custom thumbnail and three display widths, native audio, an in-editor image editor for cropping and annotation, and automatic WebP/AVIF derivatives. Embeds cover YouTube, Vimeo and Spotify. What is absent is everything commerce-grade: no 360-degree spin views, no AR or 3D model references, no image hotspots, no zoom, no per-SKU media sets, and the Product card carries a single static image. Sits at the bottom of the 30–50 basic-galleries-and-video band.
Ghost is a single-publication platform with no marketplace concept. Staff users are editorial roles (Contributor/Author/Editor/Administrator) with author profile pages, not seller accounts; there is no seller-contributed product content, no review aggregation, no seller-level permissions or storefront, and no moderation model scoped to vendors. The Feb 2026 comment moderation dashboard moderates reader comments on your own posts — useful, but not marketplace content quality management.
The intersection of two capabilities Ghost does not have. No multilingual content (the posts.locale column is documented as unused and reserved), and no product content to localize. Within a single instance there is no way to hold locale-specific product descriptions, currency-aware content blocks, regional regulatory text such as EU labelling or CA Prop 65, or market-specific promo calendars. Ghost's own multilingual answer — a separate instance per language — would also fork any product content entirely.
Ghost's own funnel is well instrumented — per-post analytics attributes signups and paid conversions to the post that drove them, member sources attributes members to ref/source/utm_source campaigns, a Growth tab reports subscription revenue, and offer dashboards count redemptions. For commerce, none of that connects: there is no order or revenue data flowing back from Shopify/Snipcart, no content-assisted ecommerce conversion tracking, no product page performance, and no attribution of a purchase to the article that preceded it. Subscription conversion analytics is genuinely good; commerce conversion analytics does not exist.
Two separate axes, neither of which is department RBAC. Audience side: post access levels (public, members-only, paid-members-only, specific tiers) plus per-card HTML visibility gate content by membership state — real audience-gated visibility, but the segments are commercial tiers, not org units. Staff side: four fixed roles (Contributor, Author, Editor, Administrator) plus Owner, which are editorial capability levels with no scoping to sections, no per-content-instance permissions and no field-level sensitivity. SAML/OAuth SSO exists but only on the Ghost(Pro) Custom plan, and it authenticates staff into admin rather than driving content visibility. There is no way to say "only Finance can see this page," which is the actual intranet requirement. Upper half of the 20–35 band.
The raw materials are adequate: draft/scheduled/published states, tags as a flat taxonomy, built-in site search, post revision history, and an in-editor internal linking system that makes cross-referencing articles cheap. What is missing is every lifecycle control that makes knowledge trustworthy — no review-due dates, no expiry or archival scheduling, no ownership or steward assignment, no configurable approval chain for updates (the role model is fixed), no article status beyond published, and no staleness surfacing. Revision history is also shallower than it looks: revisions are capped at a non-configurable 25 per post and are not exposed through the Content API. Low end of the 35–55 adequate-modeling-no-lifecycle band.
Nothing in Ghost is built for employees. No internal news feed with org-aware targeting, no employee directory, no personalized dashboard, no notifications or alerts to staff about new content, no native mobile app, and no HR system awareness. Everything audience-facing — Portal, tiers, newsletters, comments — models a paying reader, not a colleague. The 2026 admin toolbar is a convenience for a publication's own staff users on the live site, not an employee portal. Ghost does not appear in intranet platform roundups because it is not one. Floor of the 20–35 band.
Better than last review, though still repurposed rather than built for it. An announcement bar can push an urgent message site-wide with audience visibility control; segmented newsletters reach a saved or dynamically filtered audience; automation sequences deliver a timed series of messages; and open/click analytics per email and per sequence step give a crude reach measure. That is enough to run basic announcement-style comms with some targeting, which is the 30–50 band. But the segmentation dimensions are membership tier, label, and engagement — not department, location or role; there are no read receipts, no acknowledgment tracking, no mandatory-read workflow, no escalation for non-readers, and no org-chart-driven distribution lists.
No directory capability. Staff users have author profiles — name, slug, bio, location, profile and cover photo, social links — which render an author archive page if the theme supports it, but there is no searchable people index, no skills or expertise fields, no manager hierarchy, no org chart rendering, no team pages, and no Workday/BambooHR/HRIS integration. Nothing here is modelled as an employee record.
Documents can be published and files attached — file cards accept any type up to 1GB and can be gated behind a members or paid tier — and posts carry revision history, which is rudimentary version control. But none of the policy-specific machinery exists: no approval workflow for a policy update, no effective or expiry dates, no automated review reminders, no acknowledgment or attestation tracking, no audit trail of who read what, and no document-type model distinct from a blog post. Revisions are also capped at 25 and not exposed by API, so an auditable version chain cannot be extracted.
The Automations canvas is, mechanically, a progressive-disclosure engine — build a flow that sends an email now, waits three days, sends another, waits a week, sends a third, with per-step open and click analytics. That is more than the previous "content can be organized but no delivery mechanism" finding. But it is aimed squarely at member onboarding: the only triggers are new free member and new paid member, the only action is send email, there is no HR or directory trigger, no role-specific branching, no task checklists, no completion state, and no new-hire portal. Useful scaffolding, wrong audience model.
Ghost's built-in site search is a lightweight client-side overlay over posts, pages, tags and authors. At intranet document volumes it offers nothing that matters: no federation across SharePoint, Confluence or Drive, no file-content indexing (an attached PDF is opaque to it), no faceted filtering, no relevance tuning or AI ranking, no synonyms, no scoped search by space or department, and no search analytics or failed-query reporting. Squarely in the 15–30 poor-for-enterprise-volumes band.
Responsive web only. Official themes render well on phones and Ghost Admin is usable in a mobile browser, but there is no native mobile app for readers or staff, no offline caching, no push notifications, no low-bandwidth or kiosk mode, and no shared-device session handling. Email is the closest thing to a reliable push channel for a deskless worker, which is not the same as a notification. Bottom of the 30–50 responsive-web band.
No learning features and no LMS integration. No course or lesson content types, no curriculum sequencing, no assignment, no progress or completion tracking, no quizzes, no certification, and no connector to Cornerstone, Workday Learning, TalentLMS or SCORM tooling. Training material can be published as gated posts and files, and an automation sequence could drip it, but nothing measures whether anyone learned anything.
Previously under-scored — Ghost's community layer got two real upgrades in 2026. Comment moderation (Feb 2026) added a dedicated Comments section in admin with full-text search, filters by post, author, visibility, date and reported status, one-click hide, and the ability to disable commenting for a member and retroactively hide all their comments. Comment threads, votes and pins (May 2026) added deeper nesting with a focused thread view, likes and private dislikes feeding a net-score "best" sort, and moderator-pinned comments. ActivityPub surfaces fediverse replies and likes in admin. That is comfortably past "basic commenting and reactions" into the 30–50 band. It remains reader-facing: no discussion forums or spaces, no peer recognition, no polls or surveys, no idea submission, and no department or interest communities.
Slack and Discord integrations exist but are webhook-driven post notifications — Ghost fires a signed webhook, the channel shows a link. Google Docs, Google Drive, Trello and Help Scout guides are similarly shallow (import/embed/Zapier patterns). There is no Microsoft Teams integration at all, no app or tab in Teams or Slack, no bot with rich content cards or interactive actions, no unfurl/preview handler, and no single-pane experience. The webhook layer itself is decent — HMAC-signed with retries and delivery status — but it is plumbing, not workplace integration. Mid 15–30 band.
Publishing lifecycle only: draft, scheduled, published, plus revision history and the ability to unpublish back to draft. There is no scheduled unpublish or expiry date, no automated review cadence, no stale-content flagging or freshness report, no archive state distinct from draft, and no content owner field to route a review to. For an intranet, where trust depends on knowing a page is still current, this is the gap that matters and it is unaddressed — nothing in the 2026 changelog touches lifecycle governance.
The analytics themselves are good but measure the wrong population. Ghost reports unique visitors, views, top content, top sources, country breakdown and real-time readers, filterable by date range and by audience segment — and those segments are public visitors, free members and paid members. There is no department, location or role dimension, because Ghost has no concept of one. Missing outright: failed search term reporting, engagement heatmaps, adoption or reach-rate dashboards, per-audience content gap analysis, and any intranet ROI framing. Email opens and clicks are the only per-recipient engagement signal. Top of the 10–20 band edging into basic page-view analytics.
There is no multi-tenant architecture — isolation comes from running entirely separate installs. On Ghost(Pro) each publication needs its own account and its own subscription; self-hosted, each publication is its own Ghost process with its own database, admin, theme and API keys. Isolation between them is therefore total, which also means there is no shared management layer, no tenant provisioning, no cross-publication control panel, no shared identity, and no notion of a tenant at all inside the product. Scored in the 30–50 no-native-isolation band: separation is real but incidental. (Correcting the previous entry: TryGhost/Ghost#1484 "MultiSite" was opened 15 Nov 2013 and closed the same day, ~95 minutes later — it is not an open issue tracking this and should not be cited as one.)
Nothing is shared across installs. Themes can be copied to multiple instances and snippets can be exported from one editor and pasted into another, but there is no central library either consumes — no shared content records, no global components, no design token source, no federation API, and no propagation when the source changes. Updating a shared legal footer or CTA across five publications means editing five publications. Pure duplication, which is the 20–35 band.
No governance layer spans publications. Each install has its own staff list, roles, settings, integrations and API keys, with no organization or account entity above them — Ghost(Pro) explicitly requires separate accounts per site, so there is not even a shared billing or ownership container to hang policy on. No cross-brand approval workflow, no enforced content standards, no global configuration push, no central audit across sites. The Custom plan buys advanced configuration for a single publication, not portfolio governance.
The best of the multi-brand items, because the licence is free. Ghost is MIT-licensed, so self-hosting brand two through twenty costs infrastructure only — there is no per-site licence, no seat charge and no feature gating in the open-source build, which is a genuine economy of scale for an operator willing to run the servers. Ghost(Pro) is the opposite: it is priced per publication ($18 Starter / $29 Publisher / $199 Business, billed yearly, with member-count bands on top) and the help docs require a wholly separate account per additional site, so there is no portfolio billing, no volume discount and no shared staff-seat pool — worse than plain linear, since each site is administratively independent too. Averaging the two paths lands just below the middle of the 40–60 linear band.
Per-brand identity is easy in isolation and impossible to coordinate. Each install picks its own Handlebars theme with its own CSS, typography, palette and logo, adjustable through design settings, code injection or the new in-browser theme editor, and newsletter design settings extend that identity to email and automation templates. But the theming is per-install file-level customization, not tenant-level configuration over a shared component set: there is no platform design token layer, no base theme that brand themes extend, no inheritance or override model, and no way to push a shared structural change while preserving per-brand styling. Mid 35–55 basic-CSS-per-brand band.
Ghost has neither of the two axes this item measures. No multilingual content within an instance (posts.locale is documented as unused and reserved), and no brand or tenant concept above an instance — so the brand × locale intersection has nowhere to exist. No per-brand translation approval, no shared-versus-isolated translation policy, no locale-scoped roles, and no regional legal content governance per brand. Ghost's documented answer for multiple languages is still a separate instance each, which multiplies the ungoverned surface rather than organizing it.
Ghost's native analytics are genuinely capable but strictly per-install — the Analytics tab reports on "your publication," and there is no account layer above it to roll up. No portfolio dashboard, no per-brand-versus-aggregate comparison, no publishing cadence or velocity benchmarking across sites, and no export or API for the analytics store that would let someone build one. Each publication is an analytics silo, and on Ghost(Pro) each sits in a different account behind different credentials.
Each install has its own workflow only because each install is separate. The workflow itself is not configurable anywhere: Ghost's editorial process is fixed by four staff roles (Contributor drafts, Author publishes own, Editor publishes others', Administrator does everything) with no configurable review stages, no approval chains, no custom statuses and no workflow designer. So brands cannot differentiate their process even if they want to, and nothing is centrally auditable — there is no cross-site activity log. Upper 10–25 band.
No corporate-to-brand syndication. The two features that superficially resemble it are neither: ActivityPub lets one publication's followers subscribe to another's posts and even migrate a following between accounts, and Recommendations lets publications point readers at each other — both are audience-facing discovery, not content distribution with editorial control. There is no way to author a press release or legal disclaimer centrally, push it to child publications, lock parts of it, allow local adaptation, or propagate a subsequent correction. Copying via the Admin API is a custom build with no override model. (The previously cited TryGhost/Ghost#1484 is a closed 2013 issue and is not evidence of an open gap tracker.)
Compliance is per-install and mostly manual, but Ghost has one structural advantage worth crediting: its native web analytics is cookie-free by design, counting unique visitors in 24-hour windows with no persistent browser storage, which removes the consent banner from the critical path entirely. Beyond that: a documented cookie notice pattern via code injection, GDPR-oriented member data export and deletion, and per-site data handling. What is absent is anything per-brand or regional — no data residency choice, no publishing guardrails that block non-compliant content, no jurisdiction-aware disclaimer injection, no accessibility gate, and no policy that could be set once and enforced across a portfolio.
No federated design system. A Ghost theme is a self-contained Handlebars package uploaded per install; there is no core library that brand themes extend, no versioned component contract, no semantic version enforcement, no update propagation, and no rollback across instances. Sharing a component change means re-zipping and re-uploading the theme to every publication, or maintaining a Git repo and a deploy pipeline outside Ghost entirely. The in-browser theme editor makes those per-site edits faster, which arguably increases drift rather than reducing it. Mid 10–25 band.
Fully isolated. Staff are invited per publication and exist only there; the same person working across three brands holds three unrelated accounts with three logins, and a role change or offboarding must be repeated in each. There is no central admin console spanning publications, no cross-brand contributor role, no shared group or team object, and no SSO that spans instances — SAML/OAuth is a Ghost(Pro) Custom-plan arrangement scoped to a single publication. Ghost(Pro)'s requirement of separate accounts per site makes even the billing owner different. Squarely 15–30.
There is no content model to share or extend. Posts are hardcoded to two types, post and page, validated at the schema level, with no custom content types and no custom post fields — the custom-fields work Ghost shipped in 2026 applies to members, not posts. So every brand has the identical fixed model, differentiation happens only in theme templates, and the concepts this item measures — a shared base model, per-brand extensions, forking-free inheritance — have no representation in the product at all.
Nothing exists above the single publication. Each install reports its own traffic, membership and revenue with no roll-up, no executive view, no content freshness by brand (Ghost has no freshness concept at all), no publishing SLA tracking, no cost allocation per tenant, and no capacity planning. Building one externally is also obstructed: there is no analytics export or API, so a portfolio report would have to be reconstructed from per-site Admin API calls across separate accounts.
Ghost Foundation publishes a full DPA at ghost.org/dpa/ that is accepted automatically by every customer through the ToS with no separate signature and no Enterprise gate, using the EU 2021/914 SCCs as the transfer mechanism, granting sub-processor change notice with a 5-day objection right, and committing to deletion within 90 business days. The gaps are that both Annex A (sub-processor list) and Annex B (security measures) read 'Available upon request' rather than being published, and DPA §6.1 states EU data is processed 'in data centres located within and outside the European Union', contradicting the help centre's flat claim that 'Ghost stores all data in the EU'. Not higher because a DPA whose sub-processor and security annexes are both withheld cannot support a buyer's own Art. 28 diligence; not lower because the DPA itself is public, universal and SCC-backed, and Ghost sets no non-essential cookies by default.
No BAA is offered and HIPAA appears nowhere in the DPA, privacy policy, security documentation or pricing matrix. Ghost is positioned as a publishing and newsletter platform for creators, publishers and content marketing, with no healthcare guidance of any kind. Not lower because self-hosting Ghost on HIPAA-eligible infrastructure is technically possible; not higher because the vendor offers no covered-entity path on Ghost(Pro) at any tier including Custom.
GDPR is the only framework covered. The DPA brings UK and Swiss data into scope in §2.1, but §6.2 names only the EU SCCs as the transfer mechanism — no UK IDTA or Addendum and no Swiss addendum are referenced — and the privacy policy has no CCPA/California section, no PIPEDA and no LGPD despite a large US customer base. FedRAMP, IRAP, C5, PCI-DSS and HITRUST are entirely absent. Lower than the prior score because the previously assumed 'implicit UK GDPR coverage' is not supported by the DPA's own transfer clause, and CCPA turns out to be absent rather than merely undocumented.
There is no SOC 2 attestation of either type, and the DPA makes the absence explicit: §5 offers customers only written responses to security questionnaires, exercisable no more than once per year, in place of an audit report. ghost.org/trust/ and ghost.org/security/ do not exist, so there is no report-request mechanism either. Not lower than the open-source floor because the DPA at least contractually commits to a repeatable annual questionnaire response; not higher because no independent attestation exists.
No ISO 27001 or ISO 27018 certification exists for Ghost Foundation or the Ghost(Pro) platform, and no ISMS is described anywhere. The published security documentation is entirely application-level — bcrypt hashing, 5-per-hour login rate limiting, email 2FA and device verification, Let's Encrypt SSL, ORM-based SQLi prevention — plus datacentre physical security inherited from the Amsterdam facility, which is the hosting provider's control and not a Ghost certification.
No security certifications of any kind: no CSA STAR, PCI DSS, Cyber Essentials, FedRAMP, IRAP, ENS or C5. Ghost was reviewed and listed on the Digital Public Goods Alliance registry in 2026, which is a genuine third-party assessment against the DPG Standard covering open licensing, privacy and do-no-harm design — but it is a sustainability/openness designation, not a security attestation, so it earns no additive credit here. Not lower because Ghost does run external penetration testing and operates a documented disclosure process with committed response SLAs; not higher because nothing produces a certificate a procurement team can file.
Ghost is MIT-licensed and fully self-hostable, so self-hosted operators have unconstrained residency control — the dominant deployment mode for compliance-sensitive buyers. Ghost(Pro) runs from a single Amsterdam, Netherlands region, which is publicly stated and is the residency most EU buyers want, but there is no US or APAC choice, no region-selection option at any tier, and DPA §6.1 declines to guarantee EU-only processing. Raised substantially from the prior score, which scored only the hosted product and ignored the self-hosted path that peers with the same licensing model are credited for; held below the 78+ band because Ghost(Pro) offers no region choice and no contractual residency guarantee.
Self-service export covers content and settings as JSON (posts, pages, tags, settings, staff users, members), members as CSV with a documented field list, themes as ZIP and post analytics as CSV, all from Ghost Admin without a support ticket, and DPA §7.1 documents a 90-business-day post-termination deletion window with a backup-archive carve-out. Two verified gaps pull it down: image and media assets are explicitly not self-service — the GDPR help article directs customers to email support@ghost.org for a copy — and the Admin API exposes /members/ with Browse, Read, Edit and Add only, with no Delete method, so subject erasure is manual UI work rather than API-automatable. Lower than the prior score, which described the export as covering 'all content' and missed the media carve-out.
Ghost ships a History log in core at Settings → Advanced → History, restricted to Administrator and Owner roles, recording staff-user events across posts, pages, tags, integrations, tiers, offers, settings and staff profiles, with an event-type filter and search by staff user — this corrects a prior score that stated no audit logging is documented. It stops well short of compliance-grade: no documented retention period, no export in any format, no SIEM integration, and no /actions/ or /events/ resource in the Admin API endpoint table, so the log is readable in the UI and nowhere else. Placed in the 'basic logs without export' band rather than higher for exactly that reason.
Ghost publishes no accessibility commitment for Ghost Admin: no WCAG 2.1/2.2 target, no ATAG reference, no screen-reader or focus-management statement, and a full scan of the TryGhost/Ghost monorepo tree (11,019 files) finds no axe-core, pa11y or a11y test harness and no accessibility CI workflow among its 23 GitHub Actions workflows. This reverses a prior uplift whose cited source does not support it — forum thread 38562 is a three-post May 2023 community exchange asking whether Ghost is 'yet another inaccessible platform', with no vendor reply, and a forum-wide search for 'Zenyth' returns zero results, so the claimed axe-core pre-merge gate and yearly third-party WCAG 2.2 audits are not evidenced. Not lower because the editor does ship documented keyboard shortcuts and alt-text support, but that is feature-level, not a conformance position.
No VPAT, ACR, Section 508 statement or accessibility page exists — ghost.org/accessibility/ and ghost.org/vpat/ both return 404. The strongest evidence is a buyer's own procurement request: an August 2025 forum post asking for 'a copy of any accessibility test results … usually in the form of a VPAT/ACR' drew only a moderator asking whether the question concerned the public site or the admin panel, and no answer from Ghost in the year since. This reverses a prior uplift that credited unpublished Zenyth ACRs which no source supports. At the documented floor because a procurement request for conformance documentation went unanswered, which is the practical outcome a regulated buyer will experience.
Ghost's Koenig editor still has no native AI writing assistant, generative text, rewriting, or brand voice controls as of September 2026. A scan of every Ghost core release from v6.41.1 (May 2026) to v6.65.0 (22 Sep 2026) surfaces zero generative-AI commits — the only AI-adjacent work is llms.txt/Markdown output — and the full 2026 changelog (Automations beta, gift links, GEO tools, email sequences, admin toolbar, native analytics) contains no AI authoring feature. All AI content creation still runs through external tools publishing via the Admin API. Stays at the floor.
No native AI image generation, auto alt-text, background removal, or AI focal point. Ghost does ship real first-party image processing — theme-declared `image_sizes` derivatives with automatic WebP and AVIF conversion via `{{img_url format="avif"}}`, on by default — but that is deterministic transcoding, not media AI, and alt text remains a manual field on the image card. Sits at the band floor for 'no native media AI'.
Ghost has no multi-locale content model and therefore no native MT engine, AI translation workflow, or brand-voice-preserving localization. Theme-level i18n string files are the only localization surface. The only translation pattern Ghost documents is an agent driving two separate sites through the official MCP server (`ghost_post_create({site: "blog-en"})`) — the agent does the translating, not Ghost. Held below the 20-point band floor given the near-total absence of i18n infrastructure to hang MT on.
ghost.org/help/seo/ confirms solid but entirely deterministic SEO: per-post meta title/description, automatic fallback metadata derived from page content, OG/Twitter cards, XML sitemaps, canonical tags, and automatic structured data. None of it is AI-generated — there is no bulk metadata generation, no AI tag suggestion, and no on-page SEO scoring. The Jul 2026 GEO release adds AI-discoverability output, not AI metadata authoring, so this stays in the 'no automated metadata' band.
Ghost shipped a genuine native automation canvas in 2026 — Automations (beta, Labs flag) with triggers, multi-step flows, per-step email analytics and member exit conditions — plus webhooks, the Admin API, and `ghst --json/--jq` scripting. But Automations targets member email lifecycle, not content, and nothing in it is AI: no auto-tagging, smart scheduling, duplicate detection, or content routing. Moved to the band floor for 'no AI workflow automation' rather than below it, because the non-AI automation substrate is now real.
Ghost ships no named agent product, no natural-language task execution, and no multi-step agentic content pipeline. What changed in 2026 is that Ghost now supplies first-party plumbing for *other people's* agents — the official `ghst` MCP server with `readOnlyHint`/`destructiveHint` annotations and an `--enable-destructive-actions` gate — which is protocol availability scored in 10.4.1, not an agentic platform. Small bump only, to acknowledge the destructive-action gating as an agent-run governance primitive; stays in the 0–25 'no agentic support' band.
Ghost's native analytics is now reasonably broad — v6 web/newsletter/member analytics (cookie-free, Tinybird-backed), post-level referrers, paid-conversion metrics, and per-step automation email analytics since Aug 2026 — and the whole surface is agent-readable through the `stats` MCP tool group. It remains strictly descriptive: no content gap analysis, topic clustering, health scoring, stale-content detection, or editorial recommendations. Raised to the 'no content intelligence beyond basic usage metrics' band, which now describes Ghost accurately.
Ghost has no content audit tooling of any kind, AI or otherwise — no quality scoring, brand voice checking, accessibility scanning, or duplicate/thin content detection. The only first-party auditing in the org is gscan (and the 2026 gscan-web app), which validates theme code, not content. Held below the 20-point band floor because even the non-AI substrate an AI audit would extend is absent.
Native search is still lexical — no vector indexing, embeddings, NL queries, or AI relevance ranking, and semantic search requires a third party. What lifts this within the band is that Ghost now ships genuinely RAG-ready content delivery natively: llms.txt, llms-full.txt, and a Markdown rendering of any public post by appending `.md` to its URL (core since v6.49.0), alongside the clean Content API. Top of the 15–30 'semantic search requires external integration' band; a native engine would be needed for more.
Ghost's targeting is entirely rule-based: member tiers, card-level audience visibility, saved member views, dynamic filters (Jun 2026), and Automations branching by free/paid status. There is no ML layer — no audience scoring, predictive segment assignment, next-best-content recommendation, or cold-start handling. Small bump because the rule-based substrate genuinely deepened in 2026, but rule-based targeting belongs in 2.1.x and cannot earn AI credit here.
Ghost now has a **first-party** MCP server: `@tryghost/ghst` (TryGhost org, MIT, Ghost Foundation copyright, repo created Feb 2026, 50 commits in the last month) runs `ghst mcp stdio|http` across 12 tool groups — posts, pages, tags, members, comments, site, settings, users, api, search, socialweb, stats — with full read/write/publish, `readOnlyHint`/`destructiveHint` annotations, per-call multi-site targeting, loopback-by-default HTTP binding, and staff-token JWT auth. Large jump from the previous community-only assessment. Capped below 75 because the CLI is explicitly labelled beta and pre-1.0 (v0.17.4) with ~3.1K monthly npm downloads, and it is entirely absent from docs.ghost.org — a grep of llms-full.txt returns no mention of MCP or ghst, so discovery is GitHub/npm only.
No BYOK or BYOM anywhere in Ghost admin — no AI provider settings page, no API key field for OpenAI/Anthropic/Gemini, no model selection or custom endpoint configuration. Since Ghost ships no native AI features, BYOK is structurally moot rather than a deliberate omission. Unchanged.
Materially stronger than the previous assessment. Ghost now serves RAG-ready content natively — llms.txt, llms-full.txt and `.md` renderings of every public post — on top of clean Content/Admin REST APIs, retrying HMAC-signed webhooks, the official `ghst` CLI with MCP mode, the official `aioghost` async Python client (~40K downloads/mo), and docs.ghost.org publishing its own llms.txt for agent consumption. Short of 70 because there is no dedicated AI SDK, no official LangChain/LlamaIndex/CrewAI integration guide, the GEO output is off by default on existing sites, and the official `@tryghost/content-api` and `admin-api` packages still declare no TypeScript types.
There is no AI-output governance — no brand safety controls, hallucination detection, prompt template governance, or AI-specific audit trail — because there is no native AI to govern. Ghost does have three adjacent controls that are more than nothing: a core History log audit trail (all tiers) recording staff and integration events, so MCP-driven writes are attributable; admin control over AI ingestion via the opt-in GEO toggle, which withholds members-only bodies, serves nothing on private sites, and can disable LLM structured data; and `--enable-destructive-actions` gating in the official MCP. MEDIUM confidence because none of this is documented as an AI governance layer — it is inferred from features built for other purposes.
No AI usage dashboards, credit or cost tracking, model performance metrics, or prompt analytics — and no visibility into MCP or integration-driven activity beyond the UI-only History log, which has no export, retention policy, or API. Ghost's v6 analytics suite covers traffic, newsletters, members and automation emails, none of it AI-specific. With no native AI shipping, AI observability is entirely moot. Unchanged.
How composite scores (0–100) have changed over time. Click legend items to show/hide metrics.
Framework v1.2·Mar 24, 2026·AI Enablement added as Category 10 and folded into the capability composite. Scores before and after this line are not directly comparable.
Framework v2.0·Oct 10, 2026·Categories 1 and 2 restructured: Core Content Management now holds everything a CMS must do regardless of architecture, and Category 2 scores only the DXP feature layer with a packaging rule. Pure headless platforms score lower in Category 2 by design. Scores before and after this line are not directly comparable.
Ghost's momentum is modestly improving, with gains in Operational Ease, Cost Efficiency, Suite Capability and Platform Velocity outweighing a small dip in Build Simplicity, while Compliance & Trust is unchanged. The Suite Capability rise is driven by three concrete additions rather than incremental polish: Ghost(Pro) now sells enterprise SSO, built-in Sodo search covers titles, excerpts, tags and authors, and rule-based audience targeting on individual posts replaces the earlier finding of zero native personalization, with a first-party MCP server from the TryGhost org adding to the velocity story. Practitioners should note the one real step backward, translation management, where the reassessed Weglot, Transifex and Crowdin options work by proxy or client-side rather than as true multilingual content, so Ghost remains a weak fit for teams that need managed translation workflows even as its authentication, search and personalization gaps narrow.
Score Changes
Ghost(Pro) now sells SSO — the pricing feature matrix lists 'SSO (Single Sign-On): Enable enterprise-grade authentication with SSO support for SAML, OAuth, and other identity providers', marked No on Starter/Publisher/Business and Yes only on the unpriced Custom plan. Device verification (email code from any unrecognised device) is on by default across all plans and email 2FA can be enforced on every login. The caveats are heavy: SSO is sales-gated and undocumented anywhere in the developer docs or help centre, unavailable to self-hosters, has no SCIM, and the only second factor is email — with two separate 2FA bypasses disclosed in 2026 — so this lands at the floor of the Enterprise-only band.
Built-in Sodo search covers post titles and excerpts of the latest 10,000 posts plus tags and authors, with no full-text body search, facets, tuning or analytics. Ghost maintains first-party Algolia indexing tools and documents them as the route for larger sites, which lifts it above API-only search.
Translation integrations (Weglot, Transifex Live, Crowdin proxy) translate the rendered site client-side or by proxy, with no translation UX, TMS sync or translation memory inside Ghost. Without a content locale model there is nothing for a TMS connector to attach to.
The previous "zero native personalization" finding no longer holds. Ghost has rule-based audience targeting on individual content blocks: HTML cards carry visibility settings behind an eye icon that show or hide the block for public visitors, free members or paid members, and the call-to-action card targets the same three audiences while also choosing whether it renders on the site, in the newsletter, or both. The announcement bar has the same three-way visibility control. Email content cards do merge-field personalization with a first_name placeholder and a custom fallback. Saved and dynamic member views turn filter rules into live audiences to send against. This is genuine, native, rule-based targeting — but the only rule dimension is membership state. There is no geo-targeting, no device or time-of-day rules, no behavioral or affinity scoring, no AI recommendations, no experience variants at page level, and no CDP integration beyond pasting a Segment snippet into code injection. Scored just below the 40–60 basic-rule-based band to reflect how narrow the rule vocabulary is.
Ghost now has a **first-party** MCP server: `@tryghost/ghst` (TryGhost org, MIT, Ghost Foundation copyright, repo created Feb 2026, 50 commits in the last month) runs `ghst mcp stdio|http` across 12 tool groups — posts, pages, tags, members, comments, site, settings, users, api, search, socialweb, stats — with full read/write/publish, `readOnlyHint`/`destructiveHint` annotations, per-call multi-site targeting, loopback-by-default HTTP binding, and staff-token JWT auth. Large jump from the previous community-only assessment. Capped below 75 because the CLI is explicitly labelled beta and pre-1.0 (v0.17.4) with ~3.1K monthly npm downloads, and it is entirely absent from docs.ghost.org — a grep of llms-full.txt returns no mention of MCP or ghst, so discovery is GitHub/npm only.
Workflow is the role model: Contributors write drafts they cannot publish, and Editors or Administrators publish or schedule them. Post status is fixed to draft, scheduled, published and sent, with no custom states, assignment, routing or due dates; the staff history log is the only audit trail.
Video and audio cards accept direct uploads with a generated thumbnail and player, but file size limits are small on lower plans (5 MB on Starter, 100 MB on Publisher) and there is no transcoding, adaptive streaming or captions. Most publishers embed from YouTube or Vimeo.
Previously under-scored. Ghost has native UTM awareness: member sources records ref, source or utm_source query parameters at signup or paid conversion and attributes the member to that campaign, with custom sources documented specifically for paid promotions and influencer partnerships; outbound link tagging is a separate toggle. Lead capture is native — embeddable signup forms for external pages, in-content signup cards, and call-to-action cards with sponsor labels and buttons. The Offers system produces shareable discount and free-trial offers with custom coupon codes, a per-offer landing URL that opens Portal with the offer applied, and redemption counts on the offers dashboard; retention offers (Mar 2026) intercept cancellations with a discount and can be filtered on in the member list. Per-post analytics closes the loop with a Members figure counting signups and paid conversions attributable to that post. Short of 65 because there is no general-purpose form builder — contact, survey and lead-gen forms still mean Typeform/Formspree/Jotform via embed — and no ad-platform conversion API integration.
Materially stronger than the previous assessment. Ghost now serves RAG-ready content natively — llms.txt, llms-full.txt and `.md` renderings of every public post — on top of clean Content/Admin REST APIs, retrying HMAC-signed webhooks, the official `ghst` CLI with MCP mode, the official `aioghost` async Python client (~40K downloads/mo), and docs.ghost.org publishing its own llms.txt for agent consumption. Short of 70 because there is no dedicated AI SDK, no official LangChain/LlamaIndex/CrewAI integration guide, the GEO output is off by default on existing sites, and the official `@tryghost/content-api` and `admin-api` packages still declare no TypeScript types.
GA4, Segment, Amplitude, Plausible, Fathom, Matomo and Hotjar are documented as snippets pasted into code injection, and server-side member events are available as webhooks. There are no event helpers, data layer or maintained connectors.
Newsletters are core to Ghost: unlimited sends on all plans, multiple newsletters, custom sending domain, managed deliverability, email design settings, in-editor email preview and segment-targeted sends from the post itself. External ESP sync (Mailchimp) is only CSV or Zapier, which keeps it from the top of the band.
There is no Publisher→Business cliff: Publisher scales through nine member bands ($29 → $46 → $63 → $79 → $88 → $141 → $208 → $241 → $274/mo annual at 100k members), so a growing audience moves up in 30–60% steps rather than a 7x jump, and there is no bandwidth, API-call or email-send metering anywhere in the model (email sends are unlimited on every tier). The meter is total members, and free signups count the same as paying subscribers, so an audience that does not monetize still ratchets the bill; exceeding a band disables publishing in Ghost Admin until you upgrade, which is a hard stop rather than a billable overage. Not higher because Starter has a single 1,000-member band with no upgrade path inside the tier; not lower because every price on the ladder is knowable in advance.
There is no AI-output governance — no brand safety controls, hallucination detection, prompt template governance, or AI-specific audit trail — because there is no native AI to govern. Ghost does have three adjacent controls that are more than nothing: a core History log audit trail (all tiers) recording staff and integration events, so MCP-driven writes are attributable; admin control over AI ingestion via the opt-in GEO toggle, which withholds members-only bodies, serves nothing on private sites, and can disable LLM structured data; and `--enable-destructive-actions` gating in the official MCP. MEDIUM confidence because none of this is documented as an AI governance layer — it is inferred from features built for other purposes.
Email sequences for new members (wait and send-email steps with per-step analytics) shipped in 2026 as a Labs beta that cannot yet create additional automations. There is no lead scoring, branching or multi-channel orchestration; broader automation runs through Zapier or n8n.
The Ghost-CLI retirement is real but far less imminent than it reads second-hand: the official announcement (forum, 2026-08-18) deprecates it *at Ghost 7.0*, which Ghost's own platform lead says is "not until 2027 at least" — a 16+ month runway with a promised documented migration path, feature parity for multi-site and local theme development, and continued urgent security fixes for the CLI. Ghost's forced-change history is otherwise light: published EOL dates with ~3.5-year major-version lifecycles, and Ghost 6.0's only hard cutover was capping API responses at 100 items. Not 70+ because that cutover shipped with no compatibility shim, Ghost(Pro) auto-upgraded every v5 site with no opt-out, and 7.0 will also make structural breaking changes to the Docker image (content volume moves to /home/ghost/content, container runs as a `ghost` user).
Previously under-scored: Ghost does have a promotional content system, it just targets subscriptions rather than products. The announcement bar puts a site-wide promotional banner above any theme with custom copy, background color and audience visibility (logged-out visitors, free members, paid members, or any combination) — the docs name "special offers" as a use case. The Offers system creates percentage or fixed discounts and free trials per tier, each with a custom coupon code, a shareable URL that opens Portal with the offer applied, customizable headline and description, partner-specific codes, and redemption counts on the offers dashboard plus an archive. Retention offers fire at the cancellation step. Call-to-action cards promote a message to a chosen audience on site, in newsletter, or both. Held under 40 because the promo surfaces are not time-activated — the announcement bar is switched on and off by hand with no schedule or end date — there is no countdown timer component, and all of it applies to membership tiers rather than product pricing.
Native capture is limited to member signup forms (embeddable, with labels applied at signup and spam protection) and the audience feedback widget. General-purpose forms with fields, logic or routing go through Tally, Typeform, Formspree and similar embeds.
Material regression: TryGhost archived gatsby-starter-ghost (1,090 stars), eleventy-starter-ghost (372 stars) and gatsby-source-ghost on 2026-01-19, leaving Ghost with no maintained first-party starter for any JavaScript framework, and the Vercel cms-ghost example last saw a substantive commit in April 2025 (pages router, React 18, Tailwind 3, @tryghost/content-api ^1.4.13). Held above the 25–45 'community-only' band because the native path is well served — TryGhost/Starter is an actively maintained theme starter, backed by ~20 official themes, GScan validation and the action-deploy-theme GitHub Action.
Previously under-scored on two counts. Ghost hosts video and audio natively — video cards accept .mp4/WebM/.ogg up to 1GB with custom thumbnail, loop and three display widths, audio cards accept .mp3/.wav/.ogg, and file cards take any type up to 1GB — so "video via external embeds only" was wrong. Transforms are also core, not a Cloudinary add-on: Ghost generates resized derivatives from theme-declared image_sizes and converts to WebP and AVIF via img_url, with resize and srcsets on by default. On top of that the editor ships a built-in Pintura image editor for cropping, adjustment and annotation, plus an Unsplash browser and galleries of up to 9 images, and storage adapters exist for S3, Azure, GCS and Backblaze. It is still not a DAM: no folders or collections, no asset tagging, no asset search, no usage tracking, no rights or expiry management, no focal points, and image sizes must be pre-declared at theme-config time rather than requested per URL. Solidly in the 35–55 basic-library-with-transforms band.
Previously under-scored — Ghost's community layer got two real upgrades in 2026. Comment moderation (Feb 2026) added a dedicated Comments section in admin with full-text search, filters by post, author, visibility, date and reported status, one-click hide, and the ability to disable commenting for a member and retroactively hide all their comments. Comment threads, votes and pins (May 2026) added deeper nesting with a focused thread view, likes and private dislikes feeding a net-score "best" sort, and moderator-pinned comments. ActivityPub surfaces fediverse replies and likes in admin. That is comfortably past "basic commenting and reactions" into the 30–50 band. It remains reader-facing: no discussion forums or spaces, no peer recognition, no polls or surveys, no idea submission, and no department or interest communities.
Post history keeps up to 25 revisions per post with author attribution, a visual preview of each revision and one-click restore in the editor. There is no field-level diff, no branching or releases, no API access to revisions and no trash for deleted posts, which keeps it in the basic-revisions band.
2026 brought an extraordinary defect wave: 61 GitHub security advisories against TryGhost/Ghost — 3 critical and 19 high — against 1 advisory in 2025 and 1 in 2024, including SQL injection in the Content API (CVE-2026-26980), two theme-driven RCEs, cache-poisoning XSS (CVE-2026-53943), unauthenticated staff enumeration and multiple restricted-content bypasses, with 35 of them disclosed in August–September alone. Disclosure quality is excellent — each advisory names affected and patched versions, releases ship weekly, and the policy commits to acknowledging within a week and fixing criticals within a month — but there is no bug bounty, only a security@ inbox whose triage scope explicitly excludes trusted-user XSS and privilege escalation. No known breach, but the patch tempo this demands is a real operational cost.
First-party automation exists and was previously under-credited: TryGhost publishes action-deploy-theme (391 stars), a GitHub Action that packages and deploys themes through the Admin API, plus action-update-posts for scheduled content operations, and the new `ghst` CLI is built for scripting with `--json`/`--jq` output and named site aliases that can target different instances per command. What is still missing is the substance of the band above — no managed dev/staging/prod environments, no content-model migration tooling, no branch-per-PR content environments and no API-driven environment operations, so promoting anything beyond a theme remains a hand-rolled exercise.
JavaScript is still the only first-class language — @tryghost/content-api 1.12.12 (213K downloads/mo) and @tryghost/admin-api 1.14.13 (123K/mo), both republished 2026-09-21. Official language coverage widened in 2026 with `aioghost`, an async Python client for the Admin API in the TryGhost org (PyPI 0.4.29, 18 releases, 40K downloads/mo), plus the `@tryghost/ghst` CLI (0.17.4) which exposes the full Admin API from the terminal and as an MCP server. Still nothing official for Ruby, Java, .NET, PHP or mobile, and the Python client is pre-1.0 and Admin-only, so this sits at the bottom of the 2–3 official SDK band.
Materially stronger than at last review. Ghost shipped an Automations suite through 2026: welcome emails (Feb 2026), then multi-step email sequences in public beta (Jun 2026) built on a drag-and-drop automation canvas with send-email and wait-for-duration steps, then per-step analytics (Aug 2026) showing sends, opens, clicks and top clicked links inside the canvas. Audience targeting improved alongside it — saved member views (May 2026) pin named segments to the sidebar, and dynamic filters (Jun 2026) add relative-date operators ("in the last 30 days", "in the next 30 days") so a saved view stays a live audience. Combined with scheduled publishing, newsletter segmentation by tier/label, and the Offers system, this is real campaign tooling rather than scheduled publishing alone. It still falls well short of 60: the automations are behind a Labs beta flag, there are only two triggers (new free member, new paid member) and two actions, the only channel is email, and there is no content calendar, no campaign-level archive/lifecycle, and no cross-channel campaign coordination.
Clears the 65+ bar: content performance dashboards live inside the CMS, not an external tool. Site-level Analytics gives real-time visitors, unique visitors and total views, top content split by posts/pages, top sources, and country breakdown, cookie-free via the Tinybird/ClickHouse partnership, filterable by date range and by audience segment (public visitors, free members, paid members) — with a searchable filter system added Jan 2026. Per-post analytics adds Overview, Web traffic, Newsletter and Growth tabs: unique visitors, total views, opens, clicks, top clicked links, locations, sources, and members/paid conversions attributable to that post, plus live reader count. Email sequences carry their own step-level analytics, and audience feedback collects per-post reader sentiment. Third-party paths (GA, Plausible, Fathom, Matomo, Amplitude, Segment) exist but are code-injection guides, not connectors. Not higher because there is no content decay or staleness alerting, no heatmaps, no funnel or path analysis, no export/API for the analytics data, and self-hosters must supply their own Tinybird for web traffic.
Better than last review, though still repurposed rather than built for it. An announcement bar can push an urgent message site-wide with audience visibility control; segmented newsletters reach a saved or dynamically filtered audience; automation sequences deliver a timed series of messages; and open/click analytics per email and per sequence step give a crude reach measure. That is enough to run basic announcement-style comms with some targeting, which is the 30–50 band. But the segmentation dimensions are membership tier, label, and engagement — not department, location or role; there are no read receipts, no acknowledgment tracking, no mandatory-read workflow, no escalation for non-readers, and no org-chart-driven distribution lists.
Native search is still lexical — no vector indexing, embeddings, NL queries, or AI relevance ranking, and semantic search requires a third party. What lifts this within the band is that Ghost now ships genuinely RAG-ready content delivery natively: llms.txt, llms-full.txt, and a Markdown rendering of any public post by appending `.md` to its URL (core since v6.49.0), alongside the clean Content API. Top of the 15–30 'semantic search requires external integration' band; a native engine would be needed for more.
Ghost natively sells subscriptions, tiers, offers, retention offers, gift subscriptions and tips through Stripe with Stripe Tax support. Ghost states it has no shopping cart or inventory management, so there is no product catalog or checkout for goods.
Ghost authors once and renders to more channels than most CMS at this tier, with real channel-specific variants rather than one blob everywhere. Channels: web, email newsletter, the social web via ActivityPub (posts reach Bluesky, Threads, Mastodon, Flipboard, WordPress and other fediverse clients, with follower migration from an existing Mastodon account added Jun 2026), RSS, and as of Jul 2026 a Markdown/llms.txt surface for AI agents. Members-only podcasts ship via an official Transistor.fm integration (Mar 2026), and audio and video are hosted natively up to 1GB. Variants are first-class: email content cards render only in the newsletter, public preview dividers split what web visitors versus members see, and CTA cards pick site, newsletter or both. Held below 70 because there is no SMS, push or in-app channel, the content model is fixed to post/page with no per-channel renditions of structured fields, and channel choice is per-card rather than per-model.
Ghost's native analytics is now reasonably broad — v6 web/newsletter/member analytics (cookie-free, Tinybird-backed), post-level referrers, paid-conversion metrics, and per-step automation email analytics since Aug 2026 — and the whole surface is agent-readable through the `stats` MCP tool group. It remains strictly descriptive: no content gap analysis, topic clustering, health scoring, stale-content detection, or editorial recommendations. Raised to the 'no content intelligence beyond basic usage metrics' band, which now describes Ghost accurately.
Ghost(Pro) plans include a worldwide CDN that caches the rendered site and is cleared automatically on publish, while self-hosted installs serve from the Node origin unless the operator adds a CDN. There is no purge API, edge functions or edge personalization, and the self-hosted path is DIY.
Shopify and BigCommerce integrations work by generating a Buy Button embed in the commerce platform and pasting it into a Ghost HTML card, with Snipcart, Gumroad and PayPal following the same embed pattern. There is no product picker or live product data federation.
Ghost's integrations directory lists about 108 entries plus Zapier (5,000+ apps) and n8n, and a theme marketplace with hundreds of themes. Most listings are snippet or embed instructions rather than installable apps, so quality is below a 50-integration marketplace of real connectors.
GDPR posture is genuine and self-serve: a publicly available DPA at ghost.org/dpa, a dedicated GDPR help page, and every Ghost(Pro) server located in Amsterdam — EU residency by default rather than as a paid option. There is still no SOC 2 Type 2, ISO 27001 or HIPAA BAA from the Ghost Foundation, no trust centre, and the security-and-data-practices page has not been updated since 2023, so this stays in the GDPR-only band.
Tooling improved on both sides: self-hosters get a single-command `ghost backup` that zips the full site plus documented MySQL/content-folder procedures, and Ghost(Pro) lists full site backups as an included feature, with JSON content, CSV member and analytics exports available on demand from admin. The gaps are structural — no RTO or RPO published, no multi-region failover from a single Amsterdam datacenter, no customer-triggered point-in-time restore, and Ghost states that its full site archives 'are not provided for service continuity and are not provided as backups', must be requested from support, and are unavailable once an account is cancelled. The JSON export also omits email analytics, member engagement data and comments.
Ghost publishes live company metrics, and they show real acceleration: 30,579 active customers on $11,099,649 ARR ($924,970 MRR) with 2.92% net churn, and the public ARR series runs $8.57M (Jul 2025) to $11.02M (Jul 2026) — up 28.7% year over year, versus a 2023 stretch where ARR sat flat around $6.3M for six straight months. Product expansion tracks the revenue: gift subscriptions, email sequences, member segments and AI-search optimization all shipped in 2026. Not higher because this is SMB and creator volume growth — there is no case-study program, no enterprise logo announcements, and no analyst-visible upmarket motion.
Ghost(Pro) applies the weekly releases automatically, and self-hosted upgrades remain a single `ghost update` command with `ghost backup` and built-in rollback — Ghost-CLI is still actively released (1.32.5 on 2026-09-09, 1.33.0-beta, ~12K npm downloads/mo) and docs.ghost.org/update still presents it as the supported path for all of 6.x. Major-version friction is contained by a published Breaking Changes catalog, the GScan theme validator, an EOL table (5.x ran 2022→Jan 2026) and the advice to upgrade at x.1.0; Ghost 6.0's actual breaking set was small (max 100 results replacing `?limit=all`, Node 22 only, AMP removed). Not higher because releases land weekly, headless integrations had to be rewritten for pagination with no shim, and the Docker Compose install that replaces Ghost-CLI at 7.0 is still labelled a preview.
Ghost ships on a reliable weekly cadence — 12 releases between v6.55.0 (2026-07-31) and v6.65.0 (2026-09-22) — marks security releases urgent and ships them out of band, and keeps a tight public backlog of just 37 open issues (12 opened vs 5 closed in the last 30 days). The February 2026 Docker failure produced a structural response rather than silence: a public post-mortem from the CEO, two platform engineers hired, revised incident-response and security-disclosure processes, first-party ownership of the Docker image, and Docker tags that now publish the same day as the release. Not higher because that failure is recent, the 2026 advisory volume means fixes keep arriving weekly, and much non-critical triage happens in an internal tracker, so the small public backlog partly reflects routing rather than resolution.
Post bodies are stored as Lexical JSON with a rich card set (callout, toggle, product, header, signup, button, bookmark, embeds) and reusable snippets, which gives block composition inside a single entry. There are no reusable components shared across entries by reference, no slots or regions, and custom cards are still not shipped.
Validation is limited to schema-level constraints in core (length limits, enumerations, unique slug per type) applied to both editor and Admin API writes. There are no user-configurable rules, no regex or required-field settings and no pre-save hook, so it sits well below the standard built-in validation band.
Editors preview drafts rendered by the live theme in desktop, mobile and email views, including preview as a specific member tier, and can share a draft preview link; the 2026 staff admin toolbar adds page-aware edit actions on the live site. There is no click-to-edit on the frontend and drafts are not exposed through the Content API, so headless frontends get no draft preview.
Ghost's members database supports filtered and saved views with relative-date operators, labels, tier and newsletter filters and engagement signals such as email opens, which is first-party segmentation over its own subscriber profiles. Segments drive bulk actions and email targeting, but content rules only key off free, paid and tier status, and there is no CDP integration beyond Segment's website snippet.
The 99.9% uptime guarantee with 5%-per-hour service credits is real but narrowly gated, and Ghost's two first-party sources disagree on how narrowly: the current pricing matrix shows 'Uptime SLA' as No for Starter, Publisher and Business with 99.9% only on the Custom plan, while the SLA legal page — last updated May 2019 — says it covers Business and Enterprise. Either reading leaves most paying customers with no contractual uptime commitment, credits must be claimed in writing within 30 days and are capped at the monthly fee, and self-hosters have no vendor SLA at all. A public status page exists.
Ghost tagged 76 releases in 2026 through 23 Sept (7-11 per month, effectively weekly minors from v6.41 in late May to v6.65 on 22 Sept) on 5,803 commits in the trailing 52 weeks, alongside named product launches roughly twice a month: gift subscription improvements (27 Aug), email sequence analytics (7 Aug), AI-search optimization (16 Jul), publisher gift links (6 Jul), email sequences (24 Jun) and the admin toolbar (18 Jun). Headline announcements did decelerate in Q3 — four per month in Apr-Jun, two each in Jul and Aug, none yet in September — but the underlying tagged-release train never slipped a week. Not higher because the September gap in user-visible features shows the product cadence is lumpier than the commit cadence.
Ghost follows semver and forces migrations rarely — only two majors in four years (5.0 in May 2022, 6.0 in Aug 2025) — each documented in a permanent Breaking Changes catalog with per-change remediation and explicit "best time to update" guidance, and theme compatibility is checked automatically by GScan. Ghost 6.0's breaks were modest in scope: removal of ?limit=all, Node 22 only, AMP removal, a few dead Admin API endpoints. Not higher because there are no codemods for API consumers, no dated deprecation-window policy, and ?limit=all now silently truncates to 100 items rather than erroring — a behavioral break integrations can miss entirely.
Ghost Foundation is a non-profit whose constitution bars it from being bought or sold, takes no VC, donations or grant funding, and is verifiably profitable at $11.1M ARR with 2.92% net churn — and it publishes that financial data as a live public feed going back to 2018, a level of transparency nothing else in this dataset matches. Headcount grew to 40 full-time staff with eight hires in 2026 alone, and the DPGA recognized Ghost as a digital public good in April 2026. Not higher because a 40-person team supporting 100M+ installs is a genuine capacity and bus-factor constraint, and the non-profit structure that removes acquisition risk also removes any capital cushion for a downturn.
Ghost Admin ships a genuine built-in observability layer for the publishing workload: native cookie-free web analytics with real-time visitor counts, per-post analytics, newsletter open/click health, member and MRR growth, plus a seven-component public status page (Ghost.org, Pro Websites, Admin, Social web, Analytics, Email delivery, Stripe — all 100% Jun–Sep 2026) and 24/7 threat-and-uptime management on every Ghost(Pro) plan. Webhook health is covered too, contrary to the prior scoring: Ghost persists `last_triggered_at`, `last_triggered_status` and `last_triggered_error` per webhook and surfaces them in Admin, auto-destroying endpoints that return 410. Capped at 65 because there is still no APM, tracing or metrics endpoint — config exposes only file/stdout logging with rotation — and self-hosters must supply their own uptime, server and deliverability monitoring plus a Tinybird instance to get the analytics at all.
Ghost's published support matrix is better than previously credited — email support is included on the $15/mo Starter plan and up, rising to Priority support on Business and an account manager on Custom — so basic vendor support is not Enterprise-gated. But no plan carries a published response-time commitment, the only SLA is a 99.9% *uptime* SLA exclusive to the unpriced Custom plan, there is no phone or chat channel, self-hosters get no vendor support at all (the hosting comparison lists their support channel as "Forum"), and Ghost's own contact page routes users to the forum as "the fastest way to get help" from a 40-person company. Prior review sentiment about canned, slow replies could not be re-verified (G2/Capterra/Trustpilot block the runner), so it is carried at reduced weight; the Enterprise-gated tiering keeps this inside the 40–60 band.
Ghost removed its Lexical multiplayer experiment in 2024 and has no presence, staff comments, mentions or suggestion mode; concurrent saves are caught by an update-collision check that tells the second editor someone else changed the post. Revision history records who saved what, but collaboration is effectively one editor at a time.
Ghost offers in-editor image editing, unlimited uploads and Unsplash and Giphy pickers, but no asset library with metadata schemas, rights, approvals, versioning or usage tracking. The Cloudinary integration is an image CDN path, not a DAM connector.
The integrations directory lists roughly 100 distinct entries spanning analytics, email, membership, payments, social, automation, object storage (S3, Azure, Backblaze) and search, with Zapier extending reach further, and Ghost 6 pulls ActivityPub and share buttons into core. Most listings are configuration guides for third-party services rather than installable apps, and there are no commerce, DAM or translation categories at all. Enough breadth for publishing, well short of DXP category coverage.
Developers can run a real local instance several ways: Ghost-CLI in development mode (SQLite3 supported for dev only), or the Docker Compose tooling that reproduces the production stack including Caddy, MySQL and optionally ActivityPub and analytics. The 2026 additions are substantive — the official `@tryghost/ghst` CLI does full Admin API CRUD with JSON/jq output and site aliases, there is an official VS Code extension with Handlebars hover docs, autocomplete and snippets, and GScan validates themes before upload. Held below the high band because the Docker path is still labelled a preview and `ghst` is pre-1.0 and absent from the documentation site.
Both official SDKs were republished on 2026-09-21 and still ship no bundled type declarations — neither @tryghost/content-api 1.12.12 nor @tryghost/admin-api 1.14.13 declares a `types` entry — so TypeScript consumers fall back to @ts-ghost (community, Zod-based, v5.0.0, ~10K downloads/mo). The wider picture improved: Ghost core is now majority TypeScript, the new `ghst` CLI is TS-native, and an official VS Code extension exists, though it covers Handlebars theme syntax rather than API types. No codegen from the content model, which matters less here since Ghost's schema is fixed, but the untyped official clients are the binding constraint.
Ghost runs two complementary streams: ghost.org/changelog carries dated, tagged product posts (New / Improved / Beta) with screenshots, while every GitHub release ships categorized bullets (🎨 improved, 🐛 fixed), per-change contributor attribution and a compare/vX...vY diff link — v6.65.0 lists ten discrete fixes this way. A standalone Breaking Changes catalog covers every major from 1.0 to 6.0 with explicit remediation steps, backed by an Updates & Versions guide. Not higher because the two streams never join up: no single view surfaces breaking changes per release, and the ~weekly minors carry no migration notes at all.
The raw throughput looks excellent — 5,709 PRs opened and 4,522 merged in the last 12 months, and 165 of 189 filed issues closed (87%) — but a 300-PR sample resolves to just 31 unique authors dominated by eight core staff (9larsons, EvanHahn, acburdine, rob-ghost, kevinansfield), so this is vendor velocity rather than community contribution. The forum is genuinely quiet for a platform with 30,579 paying customers: 71 new topics, 510 posts and 108 active posters in the trailing 30 days. Lowered from the prior 65 because measuring authorship rather than PR volume shows outside participation is much thinner than the aggregate implies.
The Content API is plain REST/JSON with an official JS client pulling 212K npm downloads/month, so the fetch layer is familiar — but the friction is larger than 70 implied. Neither @tryghost/content-api 1.12.12 nor @tryghost/admin-api 1.14.13 (both republished 2026-09-21) declares a `types` field, so TypeScript teams hand-roll types; the official Next.js guide still explicitly instructs 'Note this uses the pages router, not the app router' with TypeScript answered 'No'; filtering uses proprietary NQL; and the native theme layer is Handlebars. Offsetting: an official VS Code extension and the ghst CLI's MCP server mode.
Marketers can compose landing pages from cards without a developer: Ghost's own card documentation states that full-width header cards are "stackable, allowing you to build dynamic landing pages," and pairs them with signup cards (inline membership forms with design options), call-to-action cards, button cards, galleries and toggles. Title and feature image can be removed from any page. What is still missing is a layout canvas — the page chrome, grid and templates come from the Handlebars theme, and creating a genuinely new layout means editing theme code. The May 2026 in-browser theme editor ("Edit code") shortens that loop but is a code editor, not a visual builder. Sits at the low end of the 50–65 band: marketers can build and populate pages from a rich card palette but cannot author new layouts.
Among the strongest built-in SEO of any platform at this tier, and 2026 extended it to generative search. Existing core: auto-generated and auto-updated XML sitemaps, JSON-LD structured data on posts and pages, canonical tags, per-item meta title/description and OG/Twitter overrides in the post settings panel, and a redirects manager under Settings → Advanced. July 2026 added native GEO output — Ghost serves llms.txt and llms-full.txt at the domain root and a Markdown rendering of any public post by appending .md to its URL, generated by the platform rather than a plugin. All of it is bundled; no SEO plugin exists or is needed. Held below 80 because Schema.org coverage is essentially Article-type only, there is no SEO field validation or scoring, the redirects UI is a plain YAML/JSON editor, and GEO output is off by default on existing sites.
Still no native content experimentation. There are no headline variants, no layout tests, no CTA experiments, no statistical significance reporting and no auto-winner selection anywhere in the product or the 2026 changelog — even the new automation canvas has only send and wait actions, with no split or branch. Ghost publishes an integration guide for VWO covering A/B and multivariate tests, but the mechanism is pasting the VWO SmartCode into site-wide code injection, which is the same thing you could do on any HTML page and does not constitute tight integration. Newsletter subject-line testing remains a community practice, not a feature. Scored slightly above the floor only because a documented, vendor-listed experimentation path exists.
Breadth is real, depth is not. The integrations directory covers every MarTech category — CRM/marketing automation (HubSpot, ActiveCampaign, Drip, ConvertKit, Mailchimp, MailerLite, Intercom), CDP (Segment), ad platforms (Google Ad Manager, AdSense), analytics (Amplitude, Matomo, Plausible, Fathom, Hotjar, Tinybird), forms (Typeform, Jotform, Formspree, Tally, Wufoo), referral/growth (FirstPromoter, Viral Loops, Churn Buster), consent (CookieYes) and orchestration (Zapier, Pipedream) — roughly 95 documented guides. But checking them individually shows the pattern: Segment, VWO, Weglot and most others are "paste this snippet into code injection," and HubSpot/Mailchimp sync through Zapier triggers rather than two-way native connectors. The genuine event layer is Ghost's own webhooks, which do have HMAC signing, a retry limit of 5 and last_triggered status on each hook — better than a fire-and-forget webhook, and enough to drive orchestration. Mid 35–55 band: many integrations plus a credible webhook/Zapier event layer, but not one deep pre-built MarTech connector.
The Automations canvas is, mechanically, a progressive-disclosure engine — build a flow that sends an email now, waits three days, sends another, waits a week, sends a third, with per-step open and click analytics. That is more than the previous "content can be organized but no delivery mechanism" finding. But it is aimed squarely at member onboarding: the only triggers are new free member and new paid member, the only action is send email, there is no HR or directory trigger, no role-specific branching, no task checklists, no completion state, and no new-hire portal. Useful scaffolding, wrong audience model.
The Lexical editor stores a portable JSON document, supports Markdown shortcuts, a Markdown card, paste transformation from Word and Google Docs and a wide card set for embeds, and the Content API returns html, plaintext or lexical. Custom marks and custom node registration are not available, so it stops short of the extensible-AST band.
Post access can be set to public, members, paid or specific tiers, and individual cards can be shown or hidden for free or paid members on the web and in email with pre-publish preview per segment. Variants are limited to those coarse membership states, with no rule-based variants on behavior or saved segments.
Ghost ships no experimentation feature; its integrations directory points to VWO snippets pasted into global code injection. That is a fully external tool with no data flowing back into Ghost, so it scores at the bottom of the external-tool band.
Ghost has no organization, tenant or brand construct above a single publication, so there is no shared component library, cross-brand policy or brand-level reporting.
The Experts directory lists roughly two dozen shops — largely solo developers and theme studios (ElectronThemes, Haunted Themes, Themeix, Bright Themes) — filterable by minimum budgets starting at "$200 or less," which sizes the engagement model accurately. The separate Partners page is a sponsor thank-you list (DigitalOcean, Fastly, Tinybird, Zapier, Shopify, Segment), not an SI network, and despite nav copy calling them "certified Ghost developers" there is no certification or exam program anywhere on the site. Lowered from 45 because reading the actual directory shows no mid-market or enterprise SI coverage at all, which is real delivery risk for anything beyond a single publication.
ghost.org/pricing publishes the entire price ladder, not just entry points: a member slider exposes exact monthly and annual prices for Starter, Publisher and Business across nine audience bands from 1,000 to 100,000 members, alongside a 62-row feature comparison table and named add-on prices (custom SSL +$50/mo, custom subdirectory install +$50/mo). Only the Custom tier — above 100,000 members, SSO, 99.9% SLA, dedicated IP, invoice billing — is sales-gated. Not higher only because that top tier carries no published figure at all.
The 24 vetted agencies and freelancers in Ghost's own Experts directory publish minimum project budgets ranging from $60 to $3,000, with a median around $425 and seven listing $100 or less — an order of magnitude below enterprise DXP engagement floors, and the directory's budget filter tops out at '$2,000 or less'. The stack is Node.js with Handlebars themes and standard REST APIs, with no paid certification gating who can build on it. Not higher because Handlebars is a niche templating language and the vetted pool is small in absolute terms (two dozen listed experts).
Everything material exports self-serve in standard formats — content and settings as JSON, members as CSV including stripe_customer_id, themes as a zip, post analytics as CSV — and the MIT-licensed self-hosted build means the managed service can always be walked away from. The friction is that the admin export omits images and uploaded files: a complete archive requires emailing support@ghost.org before you cancel, cancellation deletes the site at the end of the billing cycle with no pause option, and moving paid subscribers and their Stripe relationships is explicitly flagged as needing care. Not higher because of the images-by-support-request gap and the hard delete on cancellation; not lower because no data sits in a proprietary format.
Better than previously credited: ghost.org/tutorials is a genuinely tiered learning path (Fundamentals 5 → Level Up 13 → Do More 7, plus a 'Most helpful' set and 14 issues of a monthly 'Build with Ghost' newsletter), and the rebuilt docs (TryGhost/Docs, created Jun 2025) publish llms.txt, llms-full.txt and a .md rendering of every page, which makes AI-assisted onboarding unusually good. Capped below 75 because every tutorial teaches Handlebars theme work — there is not one headless/JS-framework tutorial — there is no in-console interactive tour beyond the Ghost(Pro) setup wizard, and no certification path.
Fast for post-shaped content. The Lexical editor composes from a slash-menu card palette, autosaves without reloads, and goes draft→schedule→publish in one action; reusable snippets, a built-in Pintura image editor (crop, adjust, annotate in place, no round-trip to Photoshop), and internal linking via cmd+K search or @-mention against published posts, pages, tags and authors all remove steps from the writing loop. Newsletters are composed and sent from the same screen, and automation emails reuse the same editor. Email clipping warnings (Jan 2026) catch a rework cycle before send. The in-browser theme editor removes the download-unzip-edit-zip-upload loop for small template changes. Still capped by the absence of template cloning, bulk content operations, and any configurable approval shortcut, and new page layouts remain a developer task.
Consistency comes from the theme, which every post and page renders inside, plus design settings for colors, fonts and logo. Newsletter design settings (fonts, colors, button styles, headers, logos) now propagate beyond newsletters — welcome emails got their own design settings in Apr 2026, and the automation email template explicitly reuses the newsletter design controls so one styling pass covers site, newsletter and every automated email. What is absent is enforcement at the content layer: authors can drop arbitrary HTML cards, set per-card background colors on callouts and CTA cards, pick button styles and image layouts, and embed anything. There is no locked token set, no approved component palette, no restricted-override mode, and no pre-publish brand check. Squarely in the 35–55 component-consistency-without-enforcement band.
Three layers, all native. Metadata: OG and Twitter/X card markup generated automatically for every post and page, with per-item overrides. Push-to-social: the ActivityPub profile publishes each post to the social web, reaching Bluesky, Threads, Mastodon, Flipboard and WordPress followers, and Jun 2026 added migration of an existing following from another social web account into the Ghost profile, plus native Social Account settings for LinkedIn, Bluesky, Threads, Mastodon, TikTok, YouTube and Instagram (previously theme edits were required for anything beyond X and Facebook). Reader-driven sharing: the Apr 2026 native share buttons add a share modal on posts and a share link in newsletters, built into every official theme with a #/share hook for custom themes. Held under 65 because there is still no social scheduling or composer inside Ghost (Buffer is a separate code/embed guide), no UGC embed or social-proof widget tooling, and no per-network post variants.
Ghost ships no named agent product, no natural-language task execution, and no multi-step agentic content pipeline. What changed in 2026 is that Ghost now supplies first-party plumbing for *other people's* agents — the official `ghst` MCP server with `readOnlyHint`/`destructiveHint` annotations and an `--enable-destructive-actions` gate — which is protocol availability scored in 10.4.1, not an agentic platform. Small bump only, to acknowledge the destructive-action gating as an agent-run governance primitive; stays in the 0–25 'no agentic support' band.
Ghost's targeting is entirely rule-based: member tiers, card-level audience visibility, saved member views, dynamic filters (Jun 2026), and Automations branching by free/paid status. There is no ML layer — no audience scoring, predictive segment assignment, next-best-content recommendation, or cold-start handling. Small bump because the rule-based substrate genuinely deepened in 2026, but rule-based targeting belongs in 2.1.x and cannot earn AI credit here.
Ghost's schema fixes content to two types, post and page, with a fixed field set; there are no custom content types and no post-level custom fields (member custom fields are a private labs flag, not content). Above the 20s only because posts and pages carry a solid built-in field set (excerpt, feature image, SEO and social fields, code injection, visibility).
A read-only Content API is separated from the Admin API, with NQL filtering, ordering, field selection, includes and pagination, plus a JavaScript client. It covers only posts, pages, tags, authors, tiers and settings, has no GraphQL and no locale parameter, which keeps it at the bottom of the well-designed REST band.
Around 30 events cover posts, pages, tags, members and site changes, payloads are HMAC-SHA256 signed, deliveries retry up to five times and the last trigger status is stored. There is no event filtering, no custom headers, no full delivery log and no streaming alternative, and Ghost(Pro) gates custom integrations to Publisher and above.
Native analytics cover real-time visitors, per-post web traffic, newsletter opens and clicks, member growth and conversions attributed to posts, with chained filters and UTM support added in 2026. Advanced analytics are gated to Publisher and above, and there is no content health or author productivity reporting.
One Ghost install or Ghost(Pro) subscription is one publication; additional sites need separate accounts with separate subscriptions and nothing is shared between them.
TryGhost/Ghost carries 55,406 GitHub stars (up roughly 15% year over year from ~48K), 11,982 forks and 369 lifetime contributors — the largest star count of any CMS in this dataset — with @tryghost/content-api pulling 212,782 npm downloads a month and Ghost's own live dashboard reporting 100M+ installs and 30,579 paying customers. Comfortably past the 20K-star, high-download threshold for the top band. Not higher because the community is publishing-niche rather than general-purpose: forum participation is thin for the install base (108 active posters in 30 days) and Stack Overflow volume is modest next to WordPress or Drupal.
Ghost runs on Node.js with Handlebars themes and an Ember admin, so generalist JavaScript developers transfer in, but Ghost-specific supply is thin: the vetted Experts directory holds roughly 24 shops, only about 31 developers authored merged PRs in the past year, and there is no certification program, no Ghost conference speaker roster and no Stack Overflow developer survey presence. Lowered slightly from 55 because the specialist pool measured directly is smaller than the prior estimate implied. Not lower because the underlying stack is mainstream and theme work is accessible to any front-end developer.
Ghost holds a sharp, defensible position as the independent open-source publishing platform — 0% platform fees against Substack and Beehiiv, non-profit governance that cannot be acquired, memberships and newsletters in core, native ActivityPub federation shipped in 6.0, and July 2026 AI-search optimization — with DPGA digital-public-good status as outside validation. Not higher because Ghost has no analyst recognition whatsoever (no Gartner MQ, no Forrester Wave, no Peer Insights listing) and the positioning is deliberately narrow: no commerce, no multi-site, so it self-excludes from most DXP shortlists. Not lower because the differentiation is clear, consistently held for a decade, and backed by shipped features rather than roadmap.
Monthly or annual billing is available at every tier, plans and billing frequency can be changed at any time from Ghost Admin with immediate effect, unused time credited and the new charge prorated, and cancellation is a self-serve link — plus a 14-day trial that is never billed at expiry, and Ghost staff state publicly that existing customers are always grandfathered when prices change. Against that, the ToS is explicit that all sales are final with no refunds, subscriptions auto-renew, there is no way to pause an account, and no nonprofit, education or startup discount program is published. Not higher because of the no-refund/no-pause posture and the absent discount programs; not lower because nothing in the exit path is punitive and the MIT self-hosted build is a permanent fallback.
Ghost's own migrations team quotes 7–21 days for a full managed publisher move — including a private staging site, integrity checks and 301 redirects — and self-service importers cover WordPress, Substack, Medium, Squarespace, beehiiv, Mailchimp and Newspack, so most sites never need a project at all. Custom Handlebars theme work adds roughly 1–2 weeks, and the platform's narrow scope (publishing, memberships, newsletters) caps scope creep. Not higher because the 7–21 day figure is vendor-published rather than independently sampled, and paid-member/Stripe migration is explicitly flagged as needing extra care.
Ghost's resource surface is still one of the smallest in the dataset — the Content API exposes only posts, pages, authors, tags, settings and tiers, and the docs index (docs.ghost.org/llms.txt) confirms no new developer-facing modeling concepts arrived in the 2026 releases. Trimmed from 78 because the prior reasoning claimed 'no proprietary abstractions', which is not accurate: Ghost ships NQL (its own filter syntax, docs.ghost.org/content-api/filtering), routes.yaml dynamic routing, theme 'contexts', and ~40 Handlebars helpers — small and well-documented, but genuinely Ghost-specific re-learning.
The GitHub advisory feed shows 61 Ghost advisories published in 2026 (3 critical, 19 high) against 1 in 2025, with 35 landing in Aug–Sep alone in batches tied to the weekly release — so self-hosters are effectively on a weekly patch treadmill, and CVE-2026-26980 (Content API SQLi, versions 3.24.0–6.19.0) was exploited against 700+ unpatched sites. Patch mechanics themselves are good: fixes ship as urgent out-of-band releases, every GHSA names affected and patched versions, Ghost(Pro) is patched for you, and the official Docker image is now built by Ghost and published the same day as the release (6.65.0 tags dated 2026-09-22, matching the GitHub release). Held to the low 60s by the sheer advisory volume and by February 2026, when 6.19.1's SQLi fix was disclosed while Docker Hub still served 6.18.2 — a failure Ghost's CEO publicly owned before hiring a platform team to fix the pipeline.
Ghost deliberately targets one narrow supported stack — Ubuntu LTS, Node.js 22, MySQL 8.0/8.4, NGINX, systemd, 1GB RAM — with no search server, cache server or queue required, and dependencies are continuously scanned via GitHub tooling plus `yarn audit`. The official Docker image moved from Docker-community maintenance to the Ghost core team in mid-2026, removing the dependency-lag problem that burned self-hosters in February. Trimmed from the mid-70s because Ghost 6.0 pushed two capabilities out to separate services: web analytics requires a Tinybird account or a self-managed Tinybird container, and ActivityPub beyond 2,000 followers / 100 interactions a day means self-hosting a second service through the preview Docker Compose tooling.
Ghost(Pro) fronts every site with Fastly (CDN, WAF, DDoS mitigation, automatic rate limiting) and a 24/7 on-call team, and the status page has logged 100% uptime across all components for the last quarter — effectively zero performance management for a hosted publisher. Self-hosted Ghost rarely needs query or index tuning at moderate scale, but docs are explicit that the *only* supported scaling strategy is a CDN and cache layer: "Clustering or sharding is not supported." That documented ceiling — the app tier does not scale horizontally, so cache-missing traffic like logged-in member requests has no other answer — is what pulls this back from the low 70s.
The Ghost Forum carries 19,018 topics / 144,290 posts with 71 new topics, 510 posts and 373 active users in the last 30 days, and core staff post directly on operational threads — the new platform team (acburdine, 9larsons) announced the Ghost-CLI roadmap there and CEO John O'Nolan published a full post-mortem of the February Docker security failure in-thread. Ghost officially designates the forum as the primary support route, and it is the only support channel self-hosters have. Not higher because absolute volume is modest next to WordPress and roughly one in five recent topics still draws no reply at all.
Buying-guide style content is achievable and slightly better supported than at last review: the Product card gives a structured image/description/price-button/rating block, header cards build magazine-style sections, galleries and native video carry the visuals, and HTML cards drop in buy buttons — with per-card audience visibility so a paid-member-only recommendation block is possible. But it is not first-class shoppable authoring: the Product card's fields are typed by hand with no connection to live product data, there is no inline product picker against a catalog, no price or stock sync, no lookbook or shop-the-look template, and no native purchase CTA that carries a cart. Top of the 15–30 band edging into 35–55.
Basic but genuinely native media: galleries up to 9 responsively optimized images, natively hosted video up to 1GB with custom thumbnail and three display widths, native audio, an in-editor image editor for cropping and annotation, and automatic WebP/AVIF derivatives. Embeds cover YouTube, Vimeo and Spotify. What is absent is everything commerce-grade: no 360-degree spin views, no AR or 3D model references, no image hotspots, no zoom, no per-SKU media sets, and the Product card carries a single static image. Sits at the bottom of the 30–50 basic-galleries-and-video band.
Ghost's own funnel is well instrumented — per-post analytics attributes signups and paid conversions to the post that drove them, member sources attributes members to ref/source/utm_source campaigns, a Growth tab reports subscription revenue, and offer dashboards count redemptions. For commerce, none of that connects: there is no order or revenue data flowing back from Shopify/Snipcart, no content-assisted ecommerce conversion tracking, no product page performance, and no attribution of a purchase to the article that preceded it. Subscription conversion analytics is genuinely good; commerce conversion analytics does not exist.
Two separate axes, neither of which is department RBAC. Audience side: post access levels (public, members-only, paid-members-only, specific tiers) plus per-card HTML visibility gate content by membership state — real audience-gated visibility, but the segments are commercial tiers, not org units. Staff side: four fixed roles (Contributor, Author, Editor, Administrator) plus Owner, which are editorial capability levels with no scoping to sections, no per-content-instance permissions and no field-level sensitivity. SAML/OAuth SSO exists but only on the Ghost(Pro) Custom plan, and it authenticates staff into admin rather than driving content visibility. There is no way to say "only Finance can see this page," which is the actual intranet requirement. Upper half of the 20–35 band.
The analytics themselves are good but measure the wrong population. Ghost reports unique visitors, views, top content, top sources, country breakdown and real-time readers, filterable by date range and by audience segment — and those segments are public visitors, free members and paid members. There is no department, location or role dimension, because Ghost has no concept of one. Missing outright: failed search term reporting, engagement heatmaps, adoption or reach-rate dashboards, per-audience content gap analysis, and any intranet ROI framing. Email opens and clicks are the only per-recipient engagement signal. Top of the 10–20 band edging into basic page-view analytics.
The best of the multi-brand items, because the licence is free. Ghost is MIT-licensed, so self-hosting brand two through twenty costs infrastructure only — there is no per-site licence, no seat charge and no feature gating in the open-source build, which is a genuine economy of scale for an operator willing to run the servers. Ghost(Pro) is the opposite: it is priced per publication ($18 Starter / $29 Publisher / $199 Business, billed yearly, with member-count bands on top) and the help docs require a wholly separate account per additional site, so there is no portfolio billing, no volume discount and no shared staff-seat pool — worse than plain linear, since each site is administratively independent too. Averaging the two paths lands just below the middle of the 40–60 linear band.
Compliance is per-install and mostly manual, but Ghost has one structural advantage worth crediting: its native web analytics is cookie-free by design, counting unique visitors in 24-hour windows with no persistent browser storage, which removes the consent banner from the critical path entirely. Beyond that: a documented cookie notice pattern via code injection, GDPR-oriented member data export and deletion, and per-site data handling. What is absent is anything per-brand or regional — no data residency choice, no publishing guardrails that block non-compliant content, no jurisdiction-aware disclaimer injection, no accessibility gate, and no policy that could be set once and enforced across a portfolio.
Ghost shipped a genuine native automation canvas in 2026 — Automations (beta, Labs flag) with triggers, multi-step flows, per-step email analytics and member exit conditions — plus webhooks, the Admin API, and `ghst --json/--jq` scripting. But Automations targets member email lifecycle, not content, and nothing in it is AI: no auto-tagging, smart scheduling, duplicate detection, or content routing. Moved to the band floor for 'no AI workflow automation' rather than below it, because the non-AI automation substrate is now real.
Ghost resizes uploads into theme-defined sizes with srcset generation and WebP/AVIF output through {{img_url}}, offers alt text, captions and in-editor image editing, and supports video and audio upload. There is no browsable media library with folders or metadata, no focal point, no URL-based arbitrary transforms and no usage tracking.
The published comparison table shows Starter ($15/mo) excluded from the Admin API, webhooks, Zapier/n8n/custom integrations, traffic analytics, custom themes and paid subscriptions — it is a publishing-only tier with no automation surface, and it lost monetization in the July 2025 repricing while its price rose 67%. SSO, the 99.9% uptime SLA and invoice billing sit only on the sales-gated Custom plan, and even Business pays $50/mo extra each for a custom SSL certificate and a subdirectory install. Not lower because 2FA, device verification, backups, unlimited email sends and 0% transaction fees ship on every tier and the MIT self-hosted build has no feature gating at all; not higher because gating an uptime SLA and SSO behind a quote is exactly the pattern buyers get penalized for.
Ghost(Pro) goes from a no-card 14-day trial signup to a published post in minutes with hosting, CDN, SSL and newsletters already wired up, and Content API keys are issued immediately. Self-hosting is now a clone-plus-two-commands exercise on the Docker Compose tooling (`docker compose pull && docker compose up -d` brings up Ghost, Caddy and MySQL with automatic SSL), well inside an hour versus the older NGINX/MySQL/Node/systemd runbook. Not higher because the Docker path is still labelled preview and the Ghost-CLI stack remains the officially recommended production install.
Ghost is broadly stable, with modest gains in Capability (+0.8) and Platform Velocity (+1.0) offset by a 1.3-point slide in Compliance & Trust and a smaller dip in Operational Ease. The capability gain comes from a fuller account of Ghost's member segmentation (up 15), which filters on membership status, tier, labels, signup and billing dates and behavioural signals. Compliance & Trust has two opposing moves: credit for the core History audit log (up 14) and for self-hosting's residency control (up 17) was outweighed by sharp cuts to authoring UI accessibility (down 22) and accessibility documentation (down 20). Practitioners in the public sector or other accessibility-regulated settings should note that Ghost publishes no WCAG commitment for Ghost Admin and no VPAT or ACR.
Score Changes
Ghost publishes no accessibility commitment for Ghost Admin: no WCAG 2.1/2.2 target, no ATAG reference, no screen-reader or focus-management statement, and a full scan of the TryGhost/Ghost monorepo tree (11,019 files) finds no axe-core, pa11y or a11y test harness and no accessibility CI workflow among its 23 GitHub Actions workflows. This reverses a prior uplift whose cited source does not support it — forum thread 38562 is a three-post May 2023 community exchange asking whether Ghost is 'yet another inaccessible platform', with no vendor reply, and a forum-wide search for 'Zenyth' returns zero results, so the claimed axe-core pre-merge gate and yearly third-party WCAG 2.2 audits are not evidenced. Not lower because the editor does ship documented keyboard shortcuts and alt-text support, but that is feature-level, not a conformance position.
No VPAT, ACR, Section 508 statement or accessibility page exists — ghost.org/accessibility/ and ghost.org/vpat/ both return 404. The strongest evidence is a buyer's own procurement request: an August 2025 forum post asking for 'a copy of any accessibility test results … usually in the form of a VPAT/ACR' drew only a moderator asking whether the question concerned the public site or the admin panel, and no answer from Ghost in the year since. This reverses a prior uplift that credited unpublished Zenyth ACRs which no source supports. At the documented floor because a procurement request for conformance documentation went unanswered, which is the practical outcome a regulated buyer will experience.
Ghost is MIT-licensed and fully self-hostable, so self-hosted operators have unconstrained residency control — the dominant deployment mode for compliance-sensitive buyers. Ghost(Pro) runs from a single Amsterdam, Netherlands region, which is publicly stated and is the residency most EU buyers want, but there is no US or APAC choice, no region-selection option at any tier, and DPA §6.1 declines to guarantee EU-only processing. Raised substantially from the prior score, which scored only the hosted product and ignored the self-hosted path that peers with the same licensing model are credited for; held below the 78+ band because Ghost(Pro) offers no region choice and no contractual residency guarantee.
Ghost's member-segmentation engine combines membership status, tier, labels, signup/billing dates and behavioral signals (engagement, email-open history), with saved named views pinned to the Admin sidebar (May 2026) and, since June 2026, relative-date operators ('in the last'/'in the next') that make a saved view a live rolling audience rather than a frozen filter. Member tagging can be applied automatically based on behavior or via automation. Not higher because segmentation only covers known members — no anonymous-visitor profiling, no demographic/firmographic enrichment, and no CDP-backed real-time identity resolution.
Ghost ships a History log in core at Settings → Advanced → History, restricted to Administrator and Owner roles, recording staff-user events across posts, pages, tags, integrations, tiers, offers, settings and staff profiles, with an event-type filter and search by staff user — this corrects a prior score that stated no audit logging is documented. It stops well short of compliance-grade: no documented retention period, no export in any format, no SIEM integration, and no /actions/ or /events/ resource in the Admin API endpoint table, so the log is readable in the UI and nowhere else. Placed in the 'basic logs without export' band rather than higher for exactly that reason.
Ghost applies native visibility settings to Call-to-Action and HTML cards so a single post renders differently for public visitors, free members or paid members, and separately for the newsletter versus the web article, with a pre-publish preview per audience; the same card-visibility model is exposed through the Admin API. Not higher because the audience axis is confined to membership tier and delivery channel — there is no behavioral or rule-based targeting, no geo/device rules, and no external decision-engine integration.
The state machine is fixed to draft, scheduled, published and sent (schema enum on posts.status), paired with a four-role hierarchy where Contributors cannot publish, plus a staff audit trail backed by the `actions` model and still being extended in 2026 (#30701 fixed missing audit entries for staff token changes). What does not exist is any configurability: no custom stages, no conditional routing, no per-stage approval notifications, and the 2026 automations work is a member email-sequence engine, not an editorial workflow builder. Unchanged at 45 — a real approval pathway with an audit log, but no workflow engine.
Ghost's product doc states the core team maintains a broad 1-2 year roadmap but refuses to publish it — "we tried it and it turned out to be more distracting than helpful" — pointing users at GitHub and the changelog for direction instead. A forum Ideas board with upvoting exists (911 topics) but Ghost explicitly disclaims it: "it's not a democratic system" and votes don't decide what ships, and it draws only about one new topic a week. Not higher because the rubric reserves 70+ for a published roadmap with community voting, and Ghost has the voting without the roadmap; not lower because direction is genuinely legible through an open repo and a frequent changelog.
Ghost ships post history with browsable revisions, author attribution and one-click restore, which is real version control for content. It has no real-time collaboration at all: a scan of the current TryGhost/Ghost tree returns zero matches for yjs, presence, multiplayer or collaboration code, consistent with Ghost having removed its multiplayer-editing experiment rather than shipping it. Concurrent edits remain last-write-wins with no presence indicators, no inline staff comments and no suggestion mode.
The GitHub advisory feed shows 61 Ghost advisories published in 2026 (3 critical, 19 high) against 1 in 2025, with 35 landing in Aug–Sep alone in batches tied to the weekly release — so self-hosters are effectively on a weekly patch treadmill, and CVE-2026-26980 (Content API SQLi, versions 3.24.0–6.19.0) was exploited against 700+ unpatched sites. Patch mechanics themselves are good: fixes ship as urgent out-of-band releases, every GHSA names affected and patched versions, Ghost(Pro) is patched for you, and the official Docker image is now built by Ghost and published the same day as the release (6.65.0 tags dated 2026-09-22, matching the GitHub release). Held to the low 60s by the sheer advisory volume and by February 2026, when 6.19.1's SQLi fix was disclosed while Docker Hub still served 6.18.2 — a failure Ghost's CEO publicly owned before hiring a platform team to fix the pipeline.
GDPR is the only framework covered. The DPA brings UK and Swiss data into scope in §2.1, but §6.2 names only the EU SCCs as the transfer mechanism — no UK IDTA or Addendum and no Swiss addendum are referenced — and the privacy policy has no CCPA/California section, no PIPEDA and no LGPD despite a large US customer base. FedRAMP, IRAP, C5, PCI-DSS and HITRUST are entirely absent. Lower than the prior score because the previously assumed 'implicit UK GDPR coverage' is not supported by the DPA's own transfer clause, and CCPA turns out to be absent rather than merely undocumented.
Self-service export covers content and settings as JSON (posts, pages, tags, settings, staff users, members), members as CSV with a documented field list, themes as ZIP and post analytics as CSV, all from Ghost Admin without a support ticket, and DPA §7.1 documents a 90-business-day post-termination deletion window with a backup-archive carve-out. Two verified gaps pull it down: image and media assets are explicitly not self-service — the GDPR help article directs customers to email support@ghost.org for a copy — and the Admin API exposes /members/ with Browse, Read, Edit and Add only, with no Delete method, so subject erasure is manual UI work rather than API-automatable. Lower than the prior score, which described the export as covering 'all content' and missed the media carve-out.
Previously under-credited: Ghost natively generates resized derivatives from theme-declared `image_sizes` and converts to both WebP and AVIF via `{{img_url feature_image size='s' format='avif'}}`, with imageOptimization resize and srcsets on by default — no Cloudinary required. The library side is where it falls down: no folders, no tagging or search across assets, minimal metadata, no focal point, and transform sizes must be pre-declared in package.json (docs recommend no more than 10) rather than requested arbitrarily per URL. Up 5 from 53, which wrongly attributed format conversion to the Cloudinary integration.
Ghost deliberately targets one narrow supported stack — Ubuntu LTS, Node.js 22, MySQL 8.0/8.4, NGINX, systemd, 1GB RAM — with no search server, cache server or queue required, and dependencies are continuously scanned via GitHub tooling plus `yarn audit`. The official Docker image moved from Docker-community maintenance to the Ghost core team in mid-2026, removing the dependency-lag problem that burned self-hosters in February. Trimmed from the mid-70s because Ghost 6.0 pushed two capabilities out to separate services: web analytics requires a Tinybird account or a self-managed Tinybird container, and ActivityPub beyond 2,000 followers / 100 interactions a day means self-hosting a second service through the preview Docker Compose tooling.
Output is a portable AST, not an HTML blob — Ghost stores all post content as Lexical JSON and the docs state it 'is extremely portable and can be transformed into multiple formats', with the Content API able to return lexical, html or plaintext. Paste handling is a documented strength (external sources transformed on paste, Markdown converted as you type), on top of internal linking, inline image editing, emoji autocomplete and TK reminders. Capped just under 75 because custom node types remain undelivered — docs.ghost.org/publishing still describes support for custom cards as 'in active development'.
Ghost added a genuinely portable output channel in July 2026: the built-in GEO tools serve llms.txt and llms-full.txt at the domain root and a Markdown rendering of every public post by appending .md to its URL, which sits alongside ActivityPub syndication to Mastodon, Bluesky and Threads, Lexical JSON from the Content API, the official JS Content API SDK and the Jamstack starters. It is still a publishing platform with an API layer rather than a purpose-built headless product: the feature is off by default on existing sites and excludes gated content, official SDK coverage is JS/Node only with no mobile or other-language clients, and consuming Lexical elsewhere needs Ghost-specific renderers. Up 4 to the top of the 'traditional CMS with an API layer' band.
Ghost tagged 76 releases in 2026 through 23 Sept (7-11 per month, effectively weekly minors from v6.41 in late May to v6.65 on 22 Sept) on 5,803 commits in the trailing 52 weeks, alongside named product launches roughly twice a month: gift subscription improvements (27 Aug), email sequence analytics (7 Aug), AI-search optimization (16 Jul), publisher gift links (6 Jul), email sequences (24 Jun) and the admin toolbar (18 Jun). Headline announcements did decelerate in Q3 — four per month in Apr-Jun, two each in Jul and Aug, none yet in September — but the underlying tagged-release train never slipped a week. Not higher because the September gap in user-visible features shows the product cadence is lumpier than the commit cadence.
TryGhost/Ghost carries 55,406 GitHub stars (up roughly 15% year over year from ~48K), 11,982 forks and 369 lifetime contributors — the largest star count of any CMS in this dataset — with @tryghost/content-api pulling 212,782 npm downloads a month and Ghost's own live dashboard reporting 100M+ installs and 30,579 paying customers. Comfortably past the 20K-star, high-download threshold for the top band. Not higher because the community is publishing-niche rather than general-purpose: forum participation is thin for the install base (108 active posters in 30 days) and Stack Overflow volume is modest next to WordPress or Drupal.
Ghost Foundation is a non-profit whose constitution bars it from being bought or sold, takes no VC, donations or grant funding, and is verifiably profitable at $11.1M ARR with 2.92% net churn — and it publishes that financial data as a live public feed going back to 2018, a level of transparency nothing else in this dataset matches. Headcount grew to 40 full-time staff with eight hires in 2026 alone, and the DPGA recognized Ghost as a digital public good in April 2026. Not higher because a 40-person team supporting 100M+ installs is a genuine capacity and bus-factor constraint, and the non-profit structure that removes acquisition risk also removes any capital cushion for a downturn.
Ghost holds a sharp, defensible position as the independent open-source publishing platform — 0% platform fees against Substack and Beehiiv, non-profit governance that cannot be acquired, memberships and newsletters in core, native ActivityPub federation shipped in 6.0, and July 2026 AI-search optimization — with DPGA digital-public-good status as outside validation. Not higher because Ghost has no analyst recognition whatsoever (no Gartner MQ, no Forrester Wave, no Peer Insights listing) and the positioning is deliberately narrow: no commerce, no multi-site, so it self-excludes from most DXP shortlists. Not lower because the differentiation is clear, consistently held for a decade, and backed by shipped features rather than roadmap.
There is no Publisher→Business cliff: Publisher scales through nine member bands ($29 → $46 → $63 → $79 → $88 → $141 → $208 → $241 → $274/mo annual at 100k members), so a growing audience moves up in 30–60% steps rather than a 7x jump, and there is no bandwidth, API-call or email-send metering anywhere in the model (email sends are unlimited on every tier). The meter is total members, and free signups count the same as paying subscribers, so an audience that does not monetize still ratchets the bill; exceeding a band disables publishing in Ghost Admin until you upgrade, which is a hard stop rather than a billable overage. Not higher because Starter has a single 1,000-member band with no upgrade path inside the tier; not lower because every price on the ladder is knowable in advance.
Material regression: TryGhost archived gatsby-starter-ghost (1,090 stars), eleventy-starter-ghost (372 stars) and gatsby-source-ghost on 2026-01-19, leaving Ghost with no maintained first-party starter for any JavaScript framework, and the Vercel cms-ghost example last saw a substantive commit in April 2025 (pages router, React 18, Tailwind 3, @tryghost/content-api ^1.4.13). Held above the 25–45 'community-only' band because the native path is well served — TryGhost/Starter is an actively maintained theme starter, backed by ~20 official themes, GScan validation and the action-deploy-theme GitHub Action.
Ghost now sits solidly in the 'live preview plus click-to-edit' band: the admin toolbar shipped June 2026 puts context-aware edit actions on the live site for signed-in staff, the editor preview gained per-tier rendering (#29739), and Settings → Design previews brand and theme changes live. Overall page layout is still theme-controlled — a marketer cannot rearrange a header, sidebar or footer, and the May 2026 'Edit code' feature answers that with an in-browser theme file editor, which is a developer tool, not a page builder. Held at 63: the new click-to-edit surface is real but it edits post fields, not layout.
Ghost's momentum is modestly but unmistakably upward, with the headline mover being Compliance & Trust, which jumped four points as the platform stood up a documented, operating accessibility program—axe-core in CI, a published testing and audit cadence, and a yearly Zero Trust-style review—pulling its authoring-UI accessibility and accessibility documentation scores sharply higher. Platform Velocity also advanced a full point on the back of Ghost 6's shift to an independent-services architecture and native ActivityPub and ClickHouse-based analytics, while Capability, Cost Efficiency, Build Simplicity, and Operational Ease held essentially flat. For practitioners, the standout signal is that Ghost has materially closed a long-standing accessibility and governance gap—worth noting for compliance-sensitive buyers—even as its core capability profile remains unchanged.
Score Changes
Ghost has established a documented, operating accessibility program for its authoring platform: axe-core runs as a pre-merge CI gate that blocks PRs introducing accessibility defects, E2E tests gate critical flows, disabled users are involved in feature design, and on an approximately yearly cadence Ghost Foundation contracts Zenyth for third-party audits of the platform against WCAG 2.2 A and AA covering the authoring interface (not just the reader site). This is a substantial uplift from prior community-only efforts, but no public WCAG 2.1/2.2 AA conformance report is posted, so it remains short of formally documented conformance.
Ghost now documents its accessibility strategy (testing process, audit cadence, community involvement) and its yearly Zenyth audits produce Accessibility Conformance Reports (ACRs) against WCAG 2.2 A/AA for both the authoring platform and the subscriber-facing site. However, those ACRs are not published or available for download on ghost.org, there is no public VPAT or Section 508 conformance statement, and no dedicated official accessibility/procurement page exists — so procurement-ready documentation is still absent.
Ghost holds a G2 rating in the low-to-mid 4s (~4.3/5) in the 4.2–4.4 with 100–300 reviews band per the rubric (60–72). Positive themes: cleanest distraction-free editor, 0% platform fee vs Substack, fast performance out of box. Recurring negatives: narrow scope (no e-commerce, no drag-and-drop), Markdown-first learning curve for WordPress migrants. No major reliability complaints; exact 2026 review count not independently re-confirmed, hence MEDIUM confidence.
Ghost automatically generates Open Graph meta tags and Twitter/X card markup for all posts and pages. Ghost 6.0 added ActivityPub integration (Social Web): new posts are pushed to fediverse followers on Mastodon, Threads, Flipboard, WriteFreely, and compatible platforms. The 2026 native share buttons update adds a built-in share modal on posts/pages and a share link in newsletter emails — readers can copy the post link, email it, or share on social with post title/link pre-populated. The feature is built into all official themes (via theme updates) and available to custom themes via a `#/share` URL fragment. This combines OG/card management, push-to-social via ActivityPub, and first-class native reader-driven share UI. Not 65+ because there is still no social scheduling, no UGC embed tooling, and Bluesky still requires Bridgy Fed.
Ghost 6 moved to an independent-services architecture: ActivityPub and native Analytics (built on open-source ClickHouse) run as separate services alongside core Ghost, a more modern scale-out pattern than monolithic 5.x. Content API remains fully CDN-cacheable and Ghost(Pro) auto-scales managed. Still no published enterprise benchmarks (entry counts, concurrent users, API calls/sec), so not enterprise-proven at DXP scale.
Ghost has shipped meaningful updates every single month of 2026 at a 2–3+ feature cadence: saved member views (Jun 2026), connecting more social profiles (Jun), deeper comment threading + pinned comments (May), referral channel for paid memberships (May), in-app theme code editing (May), saved audience segments (May), built-in sharing and a new staff admin toolbar (Apr), plus members-only podcasts, churn-prevention offers and welcome emails earlier in the year. This sustained cadence following the v6.0 major release reflects strong shipping velocity for a non-profit open-source CMS. Not at weekly SaaS levels, but consistently above monthly.
Ghost has strong native newsletter sending: multiple newsletter types, audience segmentation by member tier and saved segments, automated welcome emails, native open/click tracking, and a built-in share modal in newsletter footers. Official Mailchimp integration enables subscriber sync. Still publisher-first rather than a full ESP — no drip campaigns or behavioral triggers beyond welcome sequences.
Content API remains CDN-cacheable with documented 'fetch as often as you like' guidance. Ghost 6.0 removed `?limit=all` and introduced a hard 100-item page cap across all endpoints, forcing pagination for bulk operations and adding friction for large imports/migrations. Still no documented CDN-backed SLA or enterprise throughput ceiling.
Ghost's integrations directory covers analytics, email, membership, payment, social, and automation, and Zapier extends reach. Ghost 6 bakes ActivityPub and (v6.30, April 2026) native share buttons directly into core, reducing dependence on third-party share/social integrations. Still no dedicated commerce, DAM, or translation marketplace categories — adequate for publishing, not for enterprise DXP breadth.
Ghost 6.0 advanced Docker Compose as the supported install/run/update path, giving developers a reproducible local stack matching production (Ubuntu 24, Node 22, MySQL 8). Ghost CLI still works for classic local installs in development mode. The tooling story is more consistent than in 5.x, though there is no dedicated emulator for content-as-code workflows.
Ghost grew paying Ghost(Pro) customers to 24K+ (from ~22K) on a ~$600K+ monthly run rate, and product expansion continued aggressively through mid-2026 with referral channels, audience segments, members-only podcasts, churn-prevention offers, and social/sharing features — signaling product-market fit expansion beyond pure publishing into creator monetization and distribution. Growing well above the CMS-market average.
Ghost is publishing-focused and handles newsletter delivery, member management, and subscription workflows natively, and the April 2026 native share buttons release removed a recurring source of custom-theme maintenance (publishers no longer hand-roll share modals — official themes support them out of the box). Ghost still lacks enterprise content-hygiene tooling — no broken-link detection, orphan-content alerts, or content-expiry workflows — so governance remains editorial-discipline driven.
Ghost's editor is purpose-built for non-technical creators: authors and editors draft, schedule, publish, manage membership tiers, and configure newsletters without developer involvement. Ghost 6.0 further reduces developer touchpoints — native analytics and one-click ActivityPub/social-web distribution are toggled in admin with no theme or code work, and the native share buttons update added an in-UI share toggle that previously required theme changes.
Ghost remains fully stable across all composite dimensions, with no movement in Capability (44), Platform Velocity (61.7), Cost Efficiency (73), Build Simplicity (67.9), Operational Ease (60.6), or Compliance & Trust (37) since the last review. The platform continues to hold its strongest position in Cost Efficiency and Build Simplicity, reflecting its straightforward publishing-focused architecture, while Compliance & Trust and Capability remain its weakest areas, consistent with its limited enterprise governance features and narrower extensibility compared to broader DXP competitors. With no item-level changes driving any shifts, Ghost's profile is unchanged and reflects a mature but niche positioning within the traditional CMS tier.
Ghost remains a focused, opinionated publishing platform excelling at cost efficiency and build simplicity for its core use case. Platform velocity is healthy but the narrow scope — publishing and newsletters — continues to limit use-case fit and platform capabilities scores relative to general-purpose CMS platforms.
Platform News
Continued refinement of publishing tools, membership management, and federation features.
Ghost continued steady iteration on its publishing platform with ActivityPub federation becoming more robust. The creator economy focus remained strong but the platform's limited extensibility and narrow use-case scope kept it in a niche position relative to broader CMS platforms.
Platform News
Federation features matured with better follower management and cross-platform interactions.
New content blocks and improved media handling in the Lexical editor.
Ghost shipped early ActivityPub integration allowing posts to federate to Mastodon and other Fediverse platforms. The technical architecture score improved as the platform modernized its Node.js stack. However, regulatory readiness remained a weak spot with no formal compliance certifications.
Platform News
Early federation support shipped, allowing Ghost sites to participate in the Fediverse.
Enhanced Content API with better filtering and includes for headless usage patterns.
Ghost announced ActivityPub federation support, signaling a bold move toward the decentralized web. This strategic bet reinvigorated community enthusiasm and platform velocity. Meanwhile, Ghost's core publishing workflow continued to be refined but the platform remained a weak choice for non-publishing use cases.
Platform News
Ghost committed to becoming a federated platform, allowing publishers to connect to the Fediverse (Mastodon, etc.).
Incremental improvements to editor, SEO tools, and content API.
Post-5.0 stabilization period with steady improvements to the Lexical editor, email deliverability, and analytics. Ghost Pro (managed hosting) pricing remained competitive. The platform's narrow focus on publishing meant use-case fit stayed limited, but operational reliability improved.
Platform News
Continued improvements to the block editor including embeds, bookmarks, and improved paste handling.
Better email infrastructure and analytics for newsletter sending.
Ghost 5.0 was a landmark release introducing native newsletters as a first-class feature, the new Lexical editor replacing Mobiledoc, and multi-tier membership pricing. Platform velocity surged as Ghost became a serious Substack alternative for professional publishers.
Platform News
Major release with native newsletters, Lexical editor, and tiered membership pricing.
New block-based editor built on Meta's Lexical framework replaced the aging Mobiledoc editor.
Publishers can now offer free, paid, and premium tiers with different content access levels.
Ghost was in a strong development cadence between major versions, shipping incremental improvements to newsletters and member management. The platform attracted independent publishers fleeing Substack, but its narrow API surface and lack of plugin ecosystem kept developer experience scores low.
Platform News
Continued iteration on email newsletter sending with better analytics and design options.
Added support for multiple membership tiers and complimentary subscriptions.
Ghost 4.0 had just launched with a revamped dashboard and member analytics, cementing the pivot from simple blogging to creator-economy platform. Stripe-powered memberships introduced in 3.0 were maturing, but the developer ecosystem and extensibility remained limited compared to competitors like WordPress.
Platform News
New dashboard with member analytics, improved editor, and email newsletter foundations.
Ghost positioned itself as an independent publishing platform with built-in membership and subscription features via Stripe.
Reach out to these highly trusted implementation partners, agencies and specialists.
Agencies, dev shops, and systems integrators vary wildly in how well they deliver on Ghost. We don't take on implementation work ourselves.
Tell us what you're building and we'll come back with a shortlist of firms with a genuine track record on this platform.