Ghost is an open-source publishing platform built around a website, email newsletters and paid memberships, run by a non-profit foundation that publishes its finances live.
WordPress wins on flexibility: custom content types, page builders and a vast plugin ecosystem let it run almost any kind of site. Ghost wins for publishers who want newsletters and paid memberships built in, a simpler build and far less plugin upkeep. Pick WordPress for a general-purpose website, Ghost for a newsletter-led publication.
Full Comparison →Webflow is the stronger choice for designed marketing sites, with a visual page builder, landing page tooling and SOC 2 assurance. Ghost costs less, sends newsletters natively and handles paid memberships that Webflow does not. Marketing teams building campaign pages should lean Webflow; subscription publishers should lean Ghost.
Full Comparison →HubSpot Content Hub pairs the website with a full CRM, marketing automation, AI tools and enterprise certifications, at a much higher price. Ghost is far cheaper and simpler, and its newsletter and membership features suit publishers better than HubSpot's lead-generation model. Choose HubSpot for B2B demand generation, Ghost for audience-funded publishing.
Full Comparison →Craft CMS offers flexible content modeling, native multi-site and multilingual content, which Ghost lacks entirely. Ghost is quicker to launch, includes managed hosting and ships newsletters and memberships that Craft would need plugins and custom work to match. Structured, multi-language corporate sites suit Craft; single-language publications suit Ghost.
Full Comparison →Our analysts rate 8 platforms as replacements, with a recommendation for who should move and who should stay. Ratings updated Oct 27, 2026.
Every Ghost(Pro) price is on the pricing page, from Starter at $18 a month to Business at $479 a month for 100,000 members, with only the Custom tier quoted by sales. Hosting, CDN, backups and unlimited email sends are bundled, so the plan fee is usually the whole bill. Everything exports in open formats and the MIT-licensed self-hosted build is always an exit, so buyers carry little lock-in risk.
A Ghost(Pro) trial goes from signup to a published post in minutes, and Ghost's own migrations team quotes 7 to 21 days for a full managed move with redirects. The product exposes only posts, pages, tags and authors, so there is little to learn. One developer, or none on Ghost(Pro), can build and run a site without a solution architect or a dedicated operations role.
Email newsletters, member signup, paid tiers through Stripe, offers and per-post analytics all ship in core rather than as plugins. Member sources attribute signups to UTM campaigns, and post analytics show which articles drove paid conversions. A publisher gets a complete audience and revenue loop without stitching together a separate email tool and payments stack.
Ghost generates XML sitemaps, structured data, canonical tags and social cards automatically, and every post has editable meta fields. Since July 2026 it can also serve llms.txt and a Markdown version of each public post so AI assistants can read the content cleanly. No SEO plugin is needed, though the AI-search output is off by default on existing sites.
The Ghost Foundation is a non-profit that cannot be bought or sold, takes no venture funding and publishes live revenue of about $11.2M a year. It ships a release almost every week, and its GitHub project has more stars than any other CMS we score. Buyers get low acquisition risk and visible momentum, though a 40-person team limits how much it can take on.
One post can go out as a web page, a newsletter, an ActivityPub post reaching Mastodon, Threads and Bluesky, and an RSS feed. Cards can be set to show only on the site or only in email. An official command-line tool doubles as an MCP server (Model Context Protocol, the standard AI assistants use to call tools), so AI agents can read and publish content directly.
Ghost has no custom content types and no custom fields on posts, and editors cannot link one post to another. Validation is fixed in the database schema with no required-field or format rules. Anything beyond articles, such as products, events, case studies or locations, has to be faked with tags or built outside Ghost.
Posts have no locale, so multilingual sites need a separate install per language or a client-side translation layer such as Weglot. Each extra site needs its own Ghost(Pro) account and subscription, with no shared content, users or governance between them. Organizations with several brands or markets will multiply cost and admin work site by site.
Ghost offers five fixed staff roles with no custom roles, section-level permissions or approval stages. Workflow is simply that contributors write drafts and editors publish them, and there is no real-time co-editing or staff commenting. Teams with legal review, regional approvers or many contributors will run governance by hand.
Ghost holds no SOC 2 report, no ISO 27001 certificate and offers no HIPAA business associate agreement. There is no trust center, no VPAT or accessibility conformance report, and a public forum request for one went unanswered. A public GDPR data processing agreement and Amsterdam hosting help EU buyers, but enterprise procurement will stall.
Ghost published 70 security advisories in 2026, against one in 2025, including SQL injection in the public content API and remote code execution reachable by any staff user. Fixes ship quickly and Ghost(Pro) is patched for you. Self-hosted operators, though, must apply updates almost every week, and there is no bug bounty program.
Through October 2026 the Ghost editor has no AI drafting, rewriting, image generation, automatic alt text or AI tagging, and there is no setting to connect your own AI provider. AI content work happens in outside tools that publish through the API or the official MCP server. Teams expecting built-in AI assistance will need to bring and govern their own.
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.
Automations (still a Labs beta) now run the default free and paid welcome flows plus additional sequences triggered by the tier a member joins, built from wait and send-email steps, with per-email and per-flow analytics showing entries, completions, drop-offs and each member's journey. Triggers are limited to signup and tier, with no branching, lead scoring or multi-channel steps, and broader automation still 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.13 (213K downloads/mo) and @tryghost/admin-api 1.14.14 (123K/mo). Official language coverage widened in 2026 with `aioghost`, an async Python client for the Admin API in the TryGhost org (PyPI 0.4.33, 22 releases, 40K downloads/mo), plus the `@tryghost/ghst` CLI (0.18.1) 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.72 Ghost still has no App Framework: no custom admin UI, no sidebar widgets, no custom field editors and no server-side hooks, so extension means themes, webhooks and the Admin API. The CEO has said Ghost 7 (targeted for early 2027) will have extensibility as its theme, but in the same thread said he had yet to work out what that means, so nothing scorable exists. 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.
The 2026 advisory wave has not let up: 70 GitHub security advisories against TryGhost/Ghost this year (3 critical, 23 high) against 1 in 2025 and 1 in 2024, including SQL injection in the Content API (CVE-2026-26980), cache-poisoning XSS (CVE-2026-53943), and a third RCE in October, where any staff user down to Contributor could run commands on the server through a bookmark card (CVE-2026-105642, v6.56 to v6.65), alongside SSRF, SVG stored XSS and image-upload memory corruption. Disclosure quality is excellent (every advisory names affected and patched versions, releases ship weekly, and the Docker image now publishes the same day as GitHub releases), but there is no bug bounty, only a security@ inbox whose triage scope excludes trusted-user XSS and privilege escalation. No known breach keeps it out of the bottom band, but self-hosters must patch on a weekly cadence.
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, republished again in October 2026, still ship no bundled type declarations — neither @tryghost/content-api 1.12.13 nor @tryghost/admin-api 1.14.14 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 has tagged 83 releases in 2026 through 20 Oct, with weekly minors continuing from v6.65 (22 Sept) to v6.72 (20 Oct), on 6,665 commits in the trailing 52 weeks. The September lull in product launches is over: October brought three changelog launches in three weeks (automation analytics on 7 Oct, tier-specific welcome sequences on 15 Oct, Stripe Checkout customization on 21 Oct), following gift subscription improvements, email sequence analytics and AI-search optimization over the summer. Not higher because most launches extend the existing membership and newsletter feature set rather than open new capability areas.
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 says the core team keeps a broad 1-2 year roadmap but does not publish it ("we tried it and it turned out to be more distracting than helpful") and points users to GitHub and the changelog instead. The CEO has said publicly that Ghost 7 is on track for early 2027 with an "extensibility and automation" theme, then added that he would explain once he figured out what that means. A forum Ideas board with upvoting exists, but Ghost states votes don't decide what ships. Not higher because the rubric reserves 70+ for a published roadmap with community voting; not lower because the open repo and frequent changelog make direction legible.
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 has 55,596 GitHub stars, 12,000 forks and 369 lifetime contributors, the largest star count of any CMS in this dataset, and @tryghost/content-api pulled 227,413 npm downloads in the last month (up from about 213K a month earlier). Ghost's live dashboard reports 100M+ installs and 30,504 paying customers. That is well 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 and Stack Overflow volume is modest next to WordPress or Drupal.
Throughput is high: 6,603 PRs opened and 5,355 merged in the last 12 months. But a prior 300-PR sample resolved to only 31 unique authors, led by Ghost staff, so this reflects vendor velocity more than outside contribution. The forum is quiet for a platform with 30,504 paying customers: 57 new topics, 499 posts and 145 participating users in the trailing 30 days, slightly below the previous month. Held at the prior score: engagement remains staff-driven and the forum is steady but thin.
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: $11,164,787 ARR and 30,504 active customers, with net churn improved to 2.68%. The public ARR series still shows strong annual growth, $8.81M (Sept 2025) to $11.12M (Sept 2026), up 26% year over year. Growth stalled in Q3, though: ARR rose only 0.9% from July to September after adding roughly $200K a month in the first half, and the customer count slipped from 30,579 a month ago. Lowered slightly for that slowdown; not higher because this is SMB and creator volume with no case-study program or enterprise logo announcements.
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.
Review volume is the constraint: G2 lists 40 reviews of Ghost and Capterra 53, and an aggregator tracking both puts the combined rating at 4.4 out of 5 across 93 reviews. A good rating on fewer than 100 reviews falls in the rubric's 45 to 60 band; the prior score assumed 100 to 300 reviews, which the listings don't support. Negative themes are structural (no e-commerce, no drag-and-drop page building, migration friction from WordPress) plus an occasional support complaint, with no pattern of reliability or pricing complaints on the forum. Not lower because the rating is consistently good; the 70 security advisories published in 2026 are a watch item that has not yet shown up in review 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, a free custom domain 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 [email protected] 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 October 2026 releases (automation analytics, tier-specific welcome sequences, Stripe Checkout customization) added no developer-facing modeling concepts. Not higher because Ghost does ship its own abstractions to learn: NQL filter syntax, routes.yaml dynamic routing, theme contexts and ~40 Handlebars helpers, small and well documented but genuinely Ghost-specific.
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, so the fetch layer is familiar, but the friction is real: @tryghost/content-api 1.12.13 and @tryghost/admin-api 1.14.14 (republished 2026-10-13) still declare no `types` field, the official Next.js guide still warns 'Note this uses the pages router, not the app router' and answers No to TypeScript, 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.
TryGhost archived gatsby-starter-ghost, eleventy-starter-ghost and gatsby-source-ghost on 2026-01-19 and has created no replacement since (no new starter repo in the TryGhost org as of 2026-10-23), so Ghost has no maintained first-party starter for any JavaScript framework, and the Vercel cms-ghost example's last commit is still April 2025 (pages router, React 18). Held above the 25–45 community-only band because the native path is well served: TryGhost/Starter is actively maintained, 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.
Still unchanged: the 2026 changelog through v6.72 (Oct 21) is membership, newsletter, automation 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) wired by hand into Next.js Draft Mode with no preview page in docs.ghost.org/llms.txt to follow, and Ghost offers no in-context or visual editing for headless frontends.
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 2026 feature wave keeps landing as admin-configurable, zero-developer capability: tier-specific welcome sequences (Oct 15), automation analytics (Oct 7), Stripe Checkout design customization (Oct 21), gift subscriptions, email sequences, dynamic member filters and the one-toggle AI-search output, and theme Custom Settings let editors restyle without code. Held at 79 because anything structural still needs a developer: a new page type, layout or URL structure means editing Handlebars templates or uploading routes.yaml, and Ghost has no page builder.
Ghost(Pro) applies the weekly releases automatically, and self-hosted upgrades remain a single `ghost update` with `ghost backup` and rollback; Ghost-CLI is still actively shipped (1.34.0 on 2026-10-20). The Docker setup that replaces it at 7.0 entered public beta on 2026-10-21 with a `ghost-docker` helper for update, backup, restore and check, plus opt-in one-click updates from Ghost Admin (Ghost 6.72.0+), and major-version friction is contained by the Breaking Changes catalog, GScan and an EOL table. Not higher because releases land weekly, 6.0 forced headless integrations onto 100-item pagination with no shim, the Admin-driven updater is beta and unavailable under rootless Docker, and 6.66.0 shipped as a GitHub release that never reached npm (superseded by 6.67.0 the same day).
The GitHub advisory feed now holds 70 Ghost advisories published in 2026 (3 critical, 23 high) against 1 in 2025, with nine more on 2026-09-24 and 2026-10-01 including a third RCE, where any staff user down to Contributor could run commands through bookmark-card image processing (6.56 to 6.65, fixed in 6.67.0), so self-hosters are on a weekly patch treadmill and CVE-2026-26980 (Content API SQLi) was exploited against 700+ unpatched sites earlier in the year. Patch mechanics are good: fixes ship in the weekly release before disclosure, every GHSA names affected and patched versions, Ghost(Pro) is patched for you, and the first-party Docker image now follows releases within a day (6.72.0 released 2026-10-20, Docker tags 2026-10-21). Held to 60 by the advisory volume and severity and by the February 2026 Docker lag that left self-hosters exposed after disclosure.
The Ghost-CLI retirement lands at Ghost 7.0, which Ghost puts at 2027 at the earliest, and Ghost has now delivered the promised migration path ahead of it: the beta Docker setup (2026-10-21) imports a CLI install via `ghost migrate-export` and the installer `--import` flag, needing only Ghost-CLI 1.33.4+ and Ghost 6.61.0+. Ghost forced-change history is otherwise light, with published EOL dates on roughly 3.5-year major-version lifecycles, and Ghost 6.0 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 stacks several structural changes on self-hosters at once: CLI removed, releases no longer published to npm, content volume moving to /home/ghost/content and the container running 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,072 topics and 144,756 posts, with 57 new topics, 499 posts and 341 active users in the last 30 days, and core staff post directly on operational threads: the platform team announced the Ghost-CLI deprecation there and opened the Docker beta in-thread on 2026-10-21, answering tester questions within hours, and CEO John O Nolan published the February Docker post-mortem 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 slightly down on last month, and a share of recent topics still draws no reply.
Ghost ships on a reliable weekly cadence (v6.65.0 on 2026-09-22 through v6.72.0 on 2026-10-20, eight releases in four weeks), fixes security issues in the release ahead of the advisory (the bookmark-card RCE was patched in 6.67.0 on 2026-09-29 and disclosed 2026-10-01), and keeps a tight public backlog of 42 open issues with 23 opened and 18 closed in the last 30 days. When 6.66.0 failed to publish to npm, 6.67.0 replaced it the same day with a clear warning on the release. The February 2026 Docker failure also produced a structural response: a public CEO post-mortem, two platform hires and a first-party Docker image. Not higher because that failure is recent, the advisory volume means fixes keep arriving weekly, and much triage happens in an internal tracker, so the small public backlog partly reflects routing.
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 a year ago and still improving. Ghost's 2026 Automations suite went from welcome emails (Feb) to multi-step email sequences on a drag-and-drop canvas with send-email and wait steps (Jun), per-step analytics (Aug), and in October two further releases: flow-level automation analytics (Oct 7) showing when each flow last triggered, how many times it ran, how many members are in progress, completed or exited early, filterable by date range so a launch or promotion can be measured, with a per-member journey view on the canvas; and custom automations beyond the default free and paid flows (Oct 15), each triggered by any paid tier or combination of tiers. Audience targeting improved alongside it: saved member views (May) and dynamic relative-date filters (Jun) keep segments live. With scheduled publishing, newsletter segmentation by tier and label, and the Offers system, this is real lifecycle campaign tooling. It still stops around 50: automations remain a Labs beta, triggers are limited to membership joins, the only action channel is email, and there is no content calendar, no campaign object with its own archive or 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, and in 2026 that identity reached more surfaces: welcome emails got design settings (Apr), the automation email template reuses newsletter design controls so one styling pass covers every automated email, and Stripe Checkout customization (Oct 21) applies brand colors, corner style and font to Ghost's checkout pages with a live preview from Settings → Tiers → Checkout. 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 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, and October 2026 moved it closer to structured onboarding. Flows send an email, wait days or weeks, send the next, with per-step open and click analytics. Since Oct 15 a publication can build separate sequences per paid tier (or tier combination), which is a crude form of audience-specific paths, and since Oct 7 each flow reports members in progress, completed or stopped early, with a per-member journey view showing which steps they reached and what is coming next, giving a basic completion state. That lifts it into the 25-45 buildable-onboarding band. It remains aimed at member onboarding, not new hires: triggers are membership joins only, the only action is send email, there is no HR or directory trigger, no role or department dimension, no task checklists, no new-hire portal, and the whole feature is still a Labs beta.
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. At the GDPR-only floor because the DPA's own transfer clause does not support implied UK coverage and CCPA is absent rather than merely undocumented; re-verified 2026-10-23 with §6.2 unchanged.
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. 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 [email protected] 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.
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. 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. A previously cited forum source does not support any program: 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 (re-checked 2026-10-23). 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. 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 editor still has no native AI writing assistant, generative text, rewriting, or brand voice controls as of October 2026. Every Ghost core release from v6.41.1 (May 2026) through v6.72.0 (20 Oct 2026) is free of generative-AI work: the October editor release (#32061) shipped distraction-free writing, editor fonts and a reorganised settings panel, nothing generative. All AI content creation still runs through external tools (Junia, AirOps, Cuppa) 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's native automation canvas keeps maturing: Automations gained per-step analytics (v6.69.0, 7 Oct 2026), paid tier-based triggers (v6.71.0, 15 Oct 2026) and a 50-action limit, alongside 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. Held at the band floor for 'no AI workflow automation'.
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 has a first-party MCP server: `@tryghost/ghst` (TryGhost org, MIT) 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 auth; v0.18.0 (12 Oct 2026) added feature image fields to MCP post create/update. Capped below 75 because the CLI is still labelled beta and pre-1.0 (v0.18.1), monthly npm downloads fell to about 1.3K, and docs.ghost.org still never mentions it, 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 improving, led by Operational Ease (+3.5), Suite Capability (+2.2) and Cost Efficiency (+1.9), with only Build Simplicity slipping (-1.2) and Compliance & Trust flat at 39.7. The Suite Capability gain reflects capabilities Ghost already ships or has added: SSO is now sold on Ghost(Pro), built-in search covers titles, excerpts, tags and authors, a first-party MCP server exposes the Admin API to AI agents, and members get rule-based audience targeting on content. Teams with multilingual needs should note the opposite move, since translation still depends on client-side or proxy tools such as Weglot with no native workflow, and Compliance & Trust remains the platform's weakest area for regulated buyers.
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.
Ghost has a first-party MCP server: `@tryghost/ghst` (TryGhost org, MIT) 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 auth; v0.18.0 (12 Oct 2026) added feature image fields to MCP post create/update. Capped below 75 because the CLI is still labelled beta and pre-1.0 (v0.18.1), monthly npm downloads fell to about 1.3K, and docs.ghost.org still never mentions it, so discovery is GitHub/npm only.
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.
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.
Automations (still a Labs beta) now run the default free and paid welcome flows plus additional sequences triggered by the tier a member joins, built from wait and send-email steps, with per-email and per-flow analytics showing entries, completions, drop-offs and each member's journey. Triggers are limited to signup and tier, with no branching, lead scoring or multi-channel steps, and broader automation still runs through Zapier or n8n.
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.
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.
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.
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.
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.
The 2026 advisory wave has not let up: 70 GitHub security advisories against TryGhost/Ghost this year (3 critical, 23 high) against 1 in 2025 and 1 in 2024, including SQL injection in the Content API (CVE-2026-26980), cache-poisoning XSS (CVE-2026-53943), and a third RCE in October, where any staff user down to Contributor could run commands on the server through a bookmark card (CVE-2026-105642, v6.56 to v6.65), alongside SSRF, SVG stored XSS and image-upload memory corruption. Disclosure quality is excellent (every advisory names affected and patched versions, releases ship weekly, and the Docker image now publishes the same day as GitHub releases), but there is no bug bounty, only a security@ inbox whose triage scope excludes trusted-user XSS and privilege escalation. No known breach keeps it out of the bottom band, but self-hosters must patch on a weekly cadence.
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 Ghost-CLI retirement lands at Ghost 7.0, which Ghost puts at 2027 at the earliest, and Ghost has now delivered the promised migration path ahead of it: the beta Docker setup (2026-10-21) imports a CLI install via `ghost migrate-export` and the installer `--import` flag, needing only Ghost-CLI 1.33.4+ and Ghost 6.61.0+. Ghost forced-change history is otherwise light, with published EOL dates on roughly 3.5-year major-version lifecycles, and Ghost 6.0 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 stacks several structural changes on self-hosters at once: CLI removed, releases no longer published to npm, content volume moving to /home/ghost/content and the container running as a `ghost` user.
Materially stronger than a year ago and still improving. Ghost's 2026 Automations suite went from welcome emails (Feb) to multi-step email sequences on a drag-and-drop canvas with send-email and wait steps (Jun), per-step analytics (Aug), and in October two further releases: flow-level automation analytics (Oct 7) showing when each flow last triggered, how many times it ran, how many members are in progress, completed or exited early, filterable by date range so a launch or promotion can be measured, with a per-member journey view on the canvas; and custom automations beyond the default free and paid flows (Oct 15), each triggered by any paid tier or combination of tiers. Audience targeting improved alongside it: saved member views (May) and dynamic relative-date filters (Jun) keep segments live. With scheduled publishing, newsletter segmentation by tier and label, and the Offers system, this is real lifecycle campaign tooling. It still stops around 50: automations remain a Labs beta, triggers are limited to membership joins, the only action channel is email, and there is no content calendar, no campaign object with its own archive or lifecycle, and no cross-channel campaign coordination.
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.
TryGhost archived gatsby-starter-ghost, eleventy-starter-ghost and gatsby-source-ghost on 2026-01-19 and has created no replacement since (no new starter repo in the TryGhost org as of 2026-10-23), so Ghost has no maintained first-party starter for any JavaScript framework, and the Vercel cms-ghost example's last commit is still April 2025 (pages router, React 18). Held above the 25–45 community-only band because the native path is well served: TryGhost/Starter is actively maintained, 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.
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.
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.
JavaScript is still the only first-class language — @tryghost/content-api 1.12.13 (213K downloads/mo) and @tryghost/admin-api 1.14.14 (123K/mo). Official language coverage widened in 2026 with `aioghost`, an async Python client for the Admin API in the TryGhost org (PyPI 0.4.33, 22 releases, 40K downloads/mo), plus the `@tryghost/ghst` CLI (0.18.1) 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.
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.
The Automations canvas is, mechanically, a progressive-disclosure engine, and October 2026 moved it closer to structured onboarding. Flows send an email, wait days or weeks, send the next, with per-step open and click analytics. Since Oct 15 a publication can build separate sequences per paid tier (or tier combination), which is a crude form of audience-specific paths, and since Oct 7 each flow reports members in progress, completed or stopped early, with a per-member journey view showing which steps they reached and what is coming next, giving a basic completion state. That lifts it into the 25-45 buildable-onboarding band. It remains aimed at member onboarding, not new hires: triggers are membership joins only, the only action is send email, there is no HR or directory trigger, no role or department dimension, no task checklists, no new-hire portal, and the whole feature is still a Labs beta.
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 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 has tagged 83 releases in 2026 through 20 Oct, with weekly minors continuing from v6.65 (22 Sept) to v6.72 (20 Oct), on 6,665 commits in the trailing 52 weeks. The September lull in product launches is over: October brought three changelog launches in three weeks (automation analytics on 7 Oct, tier-specific welcome sequences on 15 Oct, Stripe Checkout customization on 21 Oct), following gift subscription improvements, email sequence analytics and AI-search optimization over the summer. Not higher because most launches extend the existing membership and newsletter feature set rather than open new capability areas.
Ghost(Pro) applies the weekly releases automatically, and self-hosted upgrades remain a single `ghost update` with `ghost backup` and rollback; Ghost-CLI is still actively shipped (1.34.0 on 2026-10-20). The Docker setup that replaces it at 7.0 entered public beta on 2026-10-21 with a `ghost-docker` helper for update, backup, restore and check, plus opt-in one-click updates from Ghost Admin (Ghost 6.72.0+), and major-version friction is contained by the Breaking Changes catalog, GScan and an EOL table. Not higher because releases land weekly, 6.0 forced headless integrations onto 100-item pagination with no shim, the Admin-driven updater is beta and unavailable under rootless Docker, and 6.66.0 shipped as a GitHub release that never reached npm (superseded by 6.67.0 the same day).
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(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 ships on a reliable weekly cadence (v6.65.0 on 2026-09-22 through v6.72.0 on 2026-10-20, eight releases in four weeks), fixes security issues in the release ahead of the advisory (the bookmark-card RCE was patched in 6.67.0 on 2026-09-29 and disclosed 2026-10-01), and keeps a tight public backlog of 42 open issues with 23 opened and 18 closed in the last 30 days. When 6.66.0 failed to publish to npm, 6.67.0 replaced it the same day with a clear warning on the release. The February 2026 Docker failure also produced a structural response: a public CEO post-mortem, two platform hires and a first-party Docker image. Not higher because that failure is recent, the advisory volume means fixes keep arriving weekly, and much triage happens in an internal tracker, so the small public backlog partly reflects routing.
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 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.
Review volume is the constraint: G2 lists 40 reviews of Ghost and Capterra 53, and an aggregator tracking both puts the combined rating at 4.4 out of 5 across 93 reviews. A good rating on fewer than 100 reviews falls in the rubric's 45 to 60 band; the prior score assumed 100 to 300 reviews, which the listings don't support. Negative themes are structural (no e-commerce, no drag-and-drop page building, migration friction from WordPress) plus an occasional support complaint, with no pattern of reliability or pricing complaints on the forum. Not lower because the rating is consistently good; the 70 security advisories published in 2026 are a watch item that has not yet shown up in review sentiment.
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, republished again in October 2026, still ship no bundled type declarations — neither @tryghost/content-api 1.12.13 nor @tryghost/admin-api 1.14.14 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.
Throughput is high: 6,603 PRs opened and 5,355 merged in the last 12 months. But a prior 300-PR sample resolved to only 31 unique authors, led by Ghost staff, so this reflects vendor velocity more than outside contribution. The forum is quiet for a platform with 30,504 paying customers: 57 new topics, 499 posts and 145 participating users in the trailing 30 days, slightly below the previous month. Held at the prior score: engagement remains staff-driven and the forum is steady but thin.
Ghost publishes live company metrics: $11,164,787 ARR and 30,504 active customers, with net churn improved to 2.68%. The public ARR series still shows strong annual growth, $8.81M (Sept 2025) to $11.12M (Sept 2026), up 26% year over year. Growth stalled in Q3, though: ARR rose only 0.9% from July to September after adding roughly $200K a month in the first half, and the customer count slipped from 30,579 a month ago. Lowered slightly for that slowdown; not higher because this is SMB and creator volume with no case-study program or enterprise logo announcements.
The Content API is plain REST/JSON with an official JS client, so the fetch layer is familiar, but the friction is real: @tryghost/content-api 1.12.13 and @tryghost/admin-api 1.14.14 (republished 2026-10-13) still declare no `types` field, the official Next.js guide still warns 'Note this uses the pages router, not the app router' and answers No to TypeScript, 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.
The GitHub advisory feed now holds 70 Ghost advisories published in 2026 (3 critical, 23 high) against 1 in 2025, with nine more on 2026-09-24 and 2026-10-01 including a third RCE, where any staff user down to Contributor could run commands through bookmark-card image processing (6.56 to 6.65, fixed in 6.67.0), so self-hosters are on a weekly patch treadmill and CVE-2026-26980 (Content API SQLi) was exploited against 700+ unpatched sites earlier in the year. Patch mechanics are good: fixes ship in the weekly release before disclosure, every GHSA names affected and patched versions, Ghost(Pro) is patched for you, and the first-party Docker image now follows releases within a day (6.72.0 released 2026-10-20, Docker tags 2026-10-21). Held to 60 by the advisory volume and severity and by the February 2026 Docker lag that left self-hosters exposed after disclosure.
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.
Consistency comes from the theme, which every post and page renders inside, plus design settings for colors, fonts and logo, and in 2026 that identity reached more surfaces: welcome emails got design settings (Apr), the automation email template reuses newsletter design controls so one styling pass covers every automated email, and Stripe Checkout customization (Oct 21) applies brand colors, corner style and font to Ghost's checkout pages with a live preview from Settings → Tiers → Checkout. 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 component-consistency-without-enforcement band.
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 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 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.
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 [email protected] 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.
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'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.
Ghost's native automation canvas keeps maturing: Automations gained per-step analytics (v6.69.0, 7 Oct 2026), paid tier-based triggers (v6.71.0, 15 Oct 2026) and a 50-action limit, alongside 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. Held at the band floor for 'no AI workflow automation'.
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 has 55,596 GitHub stars, 12,000 forks and 369 lifetime contributors, the largest star count of any CMS in this dataset, and @tryghost/content-api pulled 227,413 npm downloads in the last month (up from about 213K a month earlier). Ghost's live dashboard reports 100M+ installs and 30,504 paying customers. That is well 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 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 October 2026 releases (automation analytics, tier-specific welcome sequences, Stripe Checkout customization) added no developer-facing modeling concepts. Not higher because Ghost does ship its own abstractions to learn: NQL filter syntax, routes.yaml dynamic routing, theme contexts and ~40 Handlebars helpers, small and well documented but genuinely Ghost-specific.
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,072 topics and 144,756 posts, with 57 new topics, 499 posts and 341 active users in the last 30 days, and core staff post directly on operational threads: the platform team announced the Ghost-CLI deprecation there and opened the Docker beta in-thread on 2026-10-21, answering tester questions within hours, and CEO John O Nolan published the February Docker post-mortem 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 slightly down on last month, and a share of recent topics still draws no reply.
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 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 [email protected] 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.
Ghost can run a simple company website, but it is built for publishing and newsletters. Content is fixed to posts and pages with no custom content types, and new layouts need theme code, so product catalogs, multi-language or multi-site estates fit poorly.
Reviewers most often praise Ghost's clean writing editor and having newsletters and paid memberships built in. Customers also value its speed, simplicity and the absence of platform fees on subscription revenue, and reviews on G2 and Capterra average about 4.4 out of 5.
Ghost's five-year cost is low: Publisher at 1,000 members costs about $1,740, and Business at 100,000 members about $24,000 on yearly billing. Hosting and email sends are included, and implementation is usually weeks, though member growth moves you into higher price bands.
The closest alternatives to Ghost are WordPress, Webflow, HubSpot Content Hub, Craft CMS and Strapi. WordPress and Craft offer more flexible content, Webflow a visual page builder, HubSpot a built-in CRM, and Strapi a headless API for developers.
Ghost has no built-in AI writing, image generation or AI tagging as of October 2026, and no setting to connect your own AI model. It does offer an official MCP server for AI agents and can publish llms.txt and Markdown versions of posts for AI search.
Ghost is one of the easiest platforms to implement and maintain. Ghost(Pro) handles hosting, updates and backups, and managed migrations take 7 to 21 days. Self-hosters run a single Docker or command-line install but must apply security updates almost weekly.
Customers most often criticize Ghost for lacking e-commerce, a drag-and-drop page builder and custom content fields. Reviewers also report friction migrating from WordPress, occasional slow support replies, and self-hosters face a heavy run of security advisories in 2026.
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.