Ghost vs Keystone
Ghost is an open-source traditional CMS that you can host yourself or run on the vendor's cloud. Keystone is an open-source headless CMS that you host yourself. The table below sets them side by side on 28 features. They get a different status on 17.
- Ghost Traditional · Open source · 10 of 28 built in
- Keystone Headless · Open source · 6 of 28 built in
Sources checked: Ghost on 29 Sept 2026, Keystone on 29 Sept 2026. Plans and releases can change after those dates.
WAYF is an official Payload partner and top contributor. Every platform in the table is classified by the same published definitions, and each answer lists the vendor page it came from.
Feature comparison
| Platform | | |
|---|---|---|
| Overview | ||
| What it is | Open-source Node.js publishing platform with built-in newsletters, memberships and paid subscriptions. Self-hosted or run on Ghost(Pro). | Open-source Node.js headless CMS from Thinkmill that generates a GraphQL API and an admin UI from a TypeScript schema. |
| Edition compared The product and release each column describes. | Ghost 6, self-hosted open source and Ghost(Pro) Version 6.65.0, released 22 Sept 2026 | Keystone 6, open source, from the @keystone-6/core package Version 8.1.0, released 31 Aug 2026 |
| Vendor | Ghost Foundation (non-profit) ghost.org | Thinkmill keystonejs.com |
| Licence | Open source MIT | Open source MIT |
| Hosting | Self-hosting Vendor cloud Ghost(Pro) Starter allows only the default theme and no custom integrations. | Self-hosting No vendor cloud No managed hosting. Thinkmill offers enterprise support. |
| Built with | Node.js, JavaScript, Handlebars themes | TypeScript, Node.js, GraphQL, Prisma, Next.js for the admin UI |
| Database | MySQL | PostgreSQL, MySQL, SQLite |
| Pricing Public list prices only. Hosting and implementation are extra everywhere. | Free to start Free to self-host. Ghost(Pro) Starter $18, Publisher $29, Business $199 per month, billed yearly. | Free to start Free and open source. Enterprise support from Thinkmill on request. |
| Content modelling | ||
| Content model in code You define content types in files in your repository, review them like any other code and apply them from there. Imperative migration scripts alone count as limited. | Not available Fixed model of posts, pages, tags and members. | Built in Lists and fields are TypeScript config. 4 |
| Content model in the UI Admins can create and change content types and fields in the admin interface without writing code. | Not available | Not available |
| Reusable blocks Editors compose pages from reusable, typed components or blocks, and can reorder them. | Built in Fixed set of editor cards plus reusable snippets. 10 | Built in Component blocks inside the document field. 8 |
| Localization Editors translate content per locale inside the CMS, by field or by entry, without a separate site for each language. | Not available One content language per site. | Not available No locale support documented. Model translations yourself. 12 |
| Image transformations The CMS resizes, crops or converts images on request, through URL parameters or generated sizes, with no external service. | Built in Ghost generates theme-defined image sizes automatically. 5 | Not available Image field stores originals. The Cloudinary field hands resizing to Cloudinary. 711 |
| APIs and delivery | ||
| REST API A documented REST or JSON HTTP API returns content. | Built in Content API and Admin API. 12 | Not available GraphQL only. Custom REST routes through extendExpressApp. 4 |
| GraphQL API The vendor or an official module provides a GraphQL API for content. | Not available | Built in |
| Webhooks The CMS can call an external URL when content is created, changed or published. | Built in Via custom integrations. Not available on Ghost(Pro) Starter. 42 | Not available No webhook settings. Call URLs from hooks in code. 10 |
| Renders the website The CMS itself renders and serves the public pages through themes or templates. Headless-only products answer no. | Built in Handlebars themes. | Not available |
| Editorial workflow | ||
| Drafts Editors save changes as a draft and publish them later. The live version stays untouched until then. | Limited Edits to a published post go live on Update. No pending draft. 13 | Not available |
| Scheduled publishing An editor can set a future date and time for content to publish or unpublish. | Built in Scheduled publishing only. | Not available |
| Version history The CMS keeps earlier versions of an entry, and editors can compare or restore them. | Built in Post history with one-click restore. 6 | Not available |
| Preview Editors can see unpublished content rendered as it will appear on the site before publishing. | Built in | Not available |
| Visual editing Editors can click on the rendered page and edit content in place or in a side panel next to it. | Not available The admin toolbar on the live site links to the editor. 9 | Not available |
| Approval workflows Content moves through review stages you configure, such as draft, review and approved, with permissions per stage. | Limited Contributors draft and Editors publish. No configurable stages. 7 | Not available |
| Content releases Editors group changes across several entries and publish them together as one release. | Not available | Not available |
| Real-time co-editing Two or more editors can work on the same entry at once and see each other's changes live. | Not available | Not available |
| Access and governance | ||
| Custom roles Admins define their own roles with granular permissions instead of picking from a fixed set. | Not available Fixed staff roles. 7 | Limited Roles are access-control functions written in code. No role editor in the admin. 5 |
| Field-level permissions Admins can restrict access to single fields, on top of content types and entries. | Not available | Built in Field-level access control. 5 |
| Single sign-on Editors can sign in through SAML or OpenID Connect against a company identity provider. | Paid tier Ghost(Pro) Custom plan only. Not in self-hosted Ghost. 2 | Not available The auth package covers password login. SSO means custom session code. 6 |
| Audit log The CMS logs who changed what and when across the whole installation, and admins can review the log. | Built in History log of staff actions. 8 | Not available |
| Platform and extensibility | ||
| Multiple sites One installation or account can manage several separate websites or brands with shared users. | Not available | Not available |
| Extensible admin UI Developers can add their own components, views or fields to the editing interface. | Not available The admin app has no extension points. | Built in Custom admin pages, navigation and field views. 9 |
| Plugin marketplace The vendor runs an official directory or marketplace of installable extensions. | Limited Theme marketplace only. Ghost has no plugin system. 2 | Not available |
| Form builder Editors can build and publish forms and collect submissions without code. | Not available Member signup forms only. | Not available |
| Site member accounts The platform handles sign-up and login for public site users or members, separate from editors. | Built in Members with free and paid tiers. 3 | Built in createAuth works on any list, including site users. 6 |
| AI writing assistant A first-party AI feature in the editing interface generates, rewrites or translates content. | Not available | Not available |
| Official MCP server The vendor publishes a Model Context Protocol server so AI agents can read or write content. | Not available Community MCP servers only. 11 | Not available |
Ghost sources
Checked 29 Sept 2026. Ghost 6, self-hosted open source and Ghost(Pro).
- Ghost releases on GitHub
- Ghost(Pro) pricing
- Ghost 6.0 changelog
- Webhooks (Ghost docs)
- Theme assets and responsive images (Ghost docs)
- Post history (changelog)
- Staff users (Ghost docs)
- History log (Ghost help)
- Your new admin toolbar (changelog)
- Intro to the editor (Ghost help)
- MFYDev/ghost-mcp on GitHub
- A new Ghost Admin API (changelog)
- Add option to save changes in published posts (Ghost Forum)
Keystone sources
Checked 29 Sept 2026. Keystone 6, open source, from the @keystone-6/core package.
- @keystone-6/core on the npm registry
- Keystone releases on GitHub
- Keystone homepage
- Keystone docs: System configuration
- Keystone docs: Access control
- Keystone docs: Authentication
- Keystone docs: Image field
- Keystone docs: Document field demo
- Keystone docs: Custom admin UI pages
- Keystone docs: Hooks guide
- Keystone docs: Cloudinary image field
- Keystone documentation index (llms.txt)
Considering more platforms? Compare Ghost and Keystone with the rest of your shortlist in the CMS comparison tool.
Where they differ
Ghost and Keystone get a different status on 17 of the 28 features and the same status on 11. Ghost has 10 built in on its baseline edition, Keystone has 6. Two matching statuses can still name different paid tiers or limits, so read the notes in the table before treating a row as equal.
- Vendor cloud
- Ghost has a vendor-run cloud. Keystone has no vendor-run cloud.
Built in on Ghost, a different answer on Keystone 8
- Image transformations Ghost: Built in. Keystone: Not available.
- REST API Ghost: Built in. Keystone: Not available.
- Webhooks Ghost: Built in. Keystone: Not available.
- Renders the website Ghost: Built in. Keystone: Not available.
- Scheduled publishing Ghost: Built in. Keystone: Not available.
- Version history Ghost: Built in. Keystone: Not available.
- Preview Ghost: Built in. Keystone: Not available.
- Audit log Ghost: Built in. Keystone: Not available.
Built in on Keystone, a different answer on Ghost 4
- Content model in code Ghost: Not available. Keystone: Built in.
- GraphQL API Ghost: Not available. Keystone: Built in.
- Field-level permissions Ghost: Not available. Keystone: Built in.
- Extensible admin UI Ghost: Not available. Keystone: Built in.
Built in on neither, with different answers 5
- Drafts Ghost: Limited. Keystone: Not available.
- Approval workflows Ghost: Limited. Keystone: Not available.
- Custom roles Ghost: Not available. Keystone: Limited.
- Single sign-on Ghost: Paid tier. Keystone: Not available.
- Plugin marketplace Ghost: Limited. Keystone: Not available.
More comparisons
Ghost against other platforms
- Adobe Experience Manager vs Ghost
- Contentful vs Ghost
- Contentstack vs Ghost
- CoreMedia Content Cloud vs Ghost
- Craft CMS vs Ghost
- DatoCMS vs Ghost
- Decap CMS vs Ghost
- Directus vs Ghost
- Drupal vs Ghost
- EmDash vs Ghost
- FirstSpirit vs Ghost
- Framer vs Ghost
- Ghost vs HubSpot CMS
- Ghost vs Hygraph
- Ghost vs Instatic
- Ghost vs Joomla
- Ghost vs Kirby
- Ghost vs Liferay DXP
- Ghost vs Optimizely CMS
- Ghost vs Payload
- Ghost vs Prismic
- Ghost vs Progress Sitefinity
- Ghost vs Sanity
- Ghost vs Sitecore
- Ghost vs Squarespace
- Ghost vs Statamic
- Ghost vs Storyblok
- Ghost vs Strapi
- Ghost vs TYPO3
- Ghost vs Umbraco
- Ghost vs Wagtail
- Ghost vs Webflow
- Ghost vs Wix
- Ghost vs WordPress
- Ghost vs Xperience by Kentico
Keystone against other platforms
- Adobe Experience Manager vs Keystone
- Contentful vs Keystone
- Contentstack vs Keystone
- CoreMedia Content Cloud vs Keystone
- Craft CMS vs Keystone
- DatoCMS vs Keystone
- Decap CMS vs Keystone
- Directus vs Keystone
- Drupal vs Keystone
- EmDash vs Keystone
- FirstSpirit vs Keystone
- Framer vs Keystone
- HubSpot CMS vs Keystone
- Hygraph vs Keystone
- Instatic vs Keystone
- Joomla vs Keystone
- Keystone vs Kirby
- Keystone vs Liferay DXP
- Keystone vs Optimizely CMS
- Keystone vs Payload
- Keystone vs Prismic
- Keystone vs Progress Sitefinity
- Keystone vs Sanity
- Keystone vs Sitecore
- Keystone vs Squarespace
- Keystone vs Statamic
- Keystone vs Storyblok
- Keystone vs Strapi
- Keystone vs TYPO3
- Keystone vs Umbraco
- Keystone vs Wagtail
- Keystone vs Webflow
- Keystone vs Wix
- Keystone vs WordPress
- Xperience by Kentico vs Keystone
Open the CMS comparison tool to put up to six platforms in one table.
We're booking content platform
engagements for 2026.
Twenty-five minutes to walk through the work and decide if we're the right team for it. Scoping and a fixed price come after.