Lucky Media Comparison
Headless WordPress vs Keystatic
An honest, side-by-side comparison from a team that has shipped both in production.
Lucky Media Expert Recommendation
For most teams: Keystatic
Keystatic is the best Git-based CMS available for Astro and Next.js projects today. It threads the needle between developer control and editor usability better than any competitor in its category. The tradeoff is real though: content lives in your repo, so it inherits every limitation of a Git workflow, and editorial features like approvals, scheduling, and localization are either missing or immature. For small developer-led teams shipping content-light sites, it's a strong fit. For marketing teams that need editorial independence, it's not the right tool.
For some teams: Headless WordPress
WordPress powers 43% of the web, and that familiarity is both its greatest strength and its biggest trap in a headless context. Going headless with WordPress does not solve the underlying problems: you still run a PHP/MySQL backend, still manage plugin security, and still inherit years of monolithic thinking. Purpose-built headless platform give you a cleaner content model, better API ergonomics, and less ongoing maintenance burden. We moved away from WordPress headless for these reasons, and we have not looked back.
Keystatic Verdict
3.5/5Best For
Developer-led teams building Astro or Next.js sites where content editors are comfortable working within a Git-adjacent workflow and the volume of content is manageable at file scale.
Watch Out
No native content scheduling, no approval workflows, no localization support, and all content is committed to your Git repo, which limits scale and editorial independence.
ICP Fit Scores
Headless WordPress Verdict
2.5/5Best For
Teams with a large existing WordPress investment, a content team that refuses to leave the WP editor, or publishers serving multiple channels from a single editorial workflow.
Watch Out
Headless WordPress still runs the full WordPress stack on the backend, you have not escaped plugin bloat, PHP vulnerabilities, or database scaling challenges by decoupling the frontend.
ICP Fit Scores
Do you need help choosing the right option?
We help funded startups and enterprises make the right call for their specific team and stack.
Talk to usOur verdict
| Overview | ||
|---|---|---|
| Founded | 2023 | 2003 |
| Pricing | ||
| Pricing Model | Free open source, Keystatic Cloud free up to 3 users, Pro from $10/mo per team | Free (self-hosted, wordpress.org) + WordPress.com from $8/mo + VIP from $25,000/yr |
| Content Modeling | ||
Flexibility How flexible is the content modelling system? Can you define complex, nested, and relational content types without workarounds? | ●●●●●4/5 Keystatic's TypeScript-based config gives you 30+ field types including blocks, arrays, conditionals, relationships, and rich text via Markdoc or MDX. Complex nested structures are achievable without workarounds. The main ceiling is that all content must map to files, so deeply relational data (many-to-many, cross-collection references) requires careful design. Within those constraints, the schema system is expressive and fully type-safe. | ●●●●●2/5 WordPress custom post types and ACF (Advanced Custom Fields) give you significant flexibility, but content modeling requires plugin stacking rather than being native to the platform. Complex relational content and deeply nested structures need WPGraphQL plus ACF Plus plus Flexible Content layouts, workable, but fragile compared to schema-first headless platforms. |
Reusability How well does the platform support reusable content blocks? Blocks that map directly to design system components. | ●●●●●3/5 The blocks field type supports design-system-aligned component patterns, and singletons handle global content like nav and footer well. But there's no true content block library or global component reference system. Reuse happens by convention in code, not enforced by the CMS itself. | ●●●●●2/5 Reusable content blocks exist via ACF Flexible Content or the block-based Gutenberg editor, but mapping them cleanly to design system components requires careful plugin configuration and custom development. There is no native concept of component-level reusability, you are adapting a publishing model into a component model. |
Validation Does the platform enforce content validation rules natively? Required fields, character limits, regex, custom validators. | ●●●●●3/5 Required fields, text length constraints, and regex validation are supported via the TypeScript schema. Custom async validators are not natively available. The validation story is solid for basic to intermediate needs but won't satisfy teams with complex business rules who rely on the CMS to enforce them. | ●●●●●2/5 Field-level validation is available through ACF and custom plugin code, but it is not enforced at the API layer. A determined editor can bypass most constraints. Native WordPress offers required fields but no character limits, regex validators, or custom validation rules without additional development. |
| Editor Experience | ||
Onboarding How intuitive is the editing interface for a non-technical editor? Could a new editor publish their first piece of content within one hour, without help? | ●●●●●3/5 The admin UI is clean, opinionated, and generally intuitive. A non-technical editor can navigate collections, create entries, and publish within an hour if someone has configured the project correctly. The friction is the Git model itself: editors need to understand that saving triggers a GitHub commit, and that there's no staging area separate from the repo. | ●●●●●4/5 This is where WordPress earns its reputation. Millions of content editors already know the WP admin interface. Onboarding for an existing WP user is near-instant. For net-new editors, the Gutenberg block editor is reasonably intuitive and the learning curve is gentle compared to structured headless platforms. |
Preview Does the platform offer live or visual preview of content? As it will appear on the frontend, without developer configuration. | ●●●●●2/5 No built-in live preview. Keystatic doesn't provide an iframe preview or visual editing experience out of the box. You can wire up draft preview routes in Next.js or Astro yourself, but it requires developer setup and isn't seamless. Compared to TinaCMS or Sanity's presentation layer, this is a meaningful gap for content-heavy sites. | ●●●●●2/5 Live preview in a headless setup requires bespoke development. WordPress's built-in preview targets the traditional theme layer, not a decoupled frontend. Faust.js provides a preview mode, but configuring it correctly requires meaningful engineering effort and breaks if the frontend stack changes. |
Workflows How well does the platform handle the full editorial workflow? Drafts, scheduling, approval chains, role-based permissions. | ●●●●●1/5 No approval workflows, no content scheduling, and no draft staging independent of Git branches. Drafts exist only as uncommitted changes in the browser's local storage. If your editorial process requires review-before-publish or scheduled publication, you're implementing it yourself through Git pull request conventions, which is a developer workflow, not an editor one. | ●●●●●3/5 Drafts, scheduled publishing, and basic role-based permissions are built in. Multi-step approval workflows require plugins (PublishPress, Nelio Content) that add maintenance overhead. Compared to platforms with native editorial workflow tooling, WordPress gets the basics right but requires plugins for anything beyond simple draft/publish. |
Assets How effective is the media and asset management? Upload, organisation, image transforms, search at scale. | ●●●●●2/5 Local images are stored directly in the repository, which becomes a problem at scale as repo size grows. Keystatic Cloud's Pro plan adds Cloud Images, which handles upload, optimization, and serving via CDN. This resolves the core problem but puts it behind a paywall. No DAM-level organization, search, or tagging. Adequate for a blog, inadequate for a content-heavy marketing site. | ●●●●●3/5 The WordPress Media Library is functional and familiar. It handles uploads, basic organisation, and image cropping. At scale it becomes unwieldy, no tagging, no advanced search, folders require plugins. For a headless setup, images still need to be served from WordPress or offloaded to a CDN integration, adding configuration overhead. |
| Collaboration | ||
Real-time Does the platform support real-time collaboration? Simultaneous editing, presence indicators, inline comments. | ●●●●●2/5 Multi-player editing is on the Keystatic Cloud Pro roadmap and listed as experimental as of 2025. In practice, simultaneous editing means Git merge conflicts. There are no presence indicators or inline comments. The collaboration model is pull request-based, which works fine for developer teams but is an obstacle for dedicated content teams. | ●●●●●2/5 WordPress has no native real-time collaboration. Two editors working on the same post will overwrite each other without warning in most configurations. The Gutenberg editor has basic collaborative editing in development as of 2026, but it is not production-ready for simultaneous authoring at the level competitors provide. |
Permissions How granular and practical are user roles and permissions? By content type, locale, or specific fields, not just admin/editor. | ●●●●●2/5 Permissions are inherited from GitHub repository access levels (read, write, admin) plus basic Keystatic Cloud user roles. There are no collection-level or field-level permissions, no content ownership model, and no way to restrict a specific editor to a subset of content. Adequate for a 2-3 person team, limiting for anything larger. | ●●●●●3/5 WordPress ships with five default roles (admin, editor, author, contributor, subscriber) and these cover most small team needs. Fine-grained permissions, by content type, taxonomy, or specific fields - require plugins like Members or User Role Editor. It is workable but not elegant. |
| Localisation | ||
Localisation Is multi-locale content management native? Field-level localisation, not page duplication or plugin workarounds. | ●●●●●1/5 Keystatic has no native localization support. Multi-locale content requires manual convention: separate collection paths per locale, file naming schemes, or a custom abstraction layer built on top. There is no locale switcher in the admin UI, no translation status tracking, and no locale-aware field configuration. | ●●●●●2/5 Multi-language in WordPress requires third-party plugins (WPML, Polylang, or TranslatePress). None of these are native, all add database complexity, and none offer true field-level localisation in a structured headless sense. For serious multilingual projects this is a significant limitation. |
Fallback Can editors manage locale fallback logic natively? e.g. show English if French translation is missing. | ●●●●●1/5 Locale fallback logic does not exist in the CMS. Anything beyond a single-language site requires custom implementation at the framework layer. This is a hard blocker for any project with internationalization requirements. | ●●●●●1/5 Locale fallback logic is not a native WordPress concept. WPML and Polylang have partial support, but managing fallback behaviour programmatically via the API requires custom development. This is one of the clearest gaps vs. purpose-built headless platforms. |
| Developer Experience | ||
API Docs How well-documented and developer-friendly is the delivery API? REST, GraphQL, typed SDKs, TypeScript support. | ●●●●●4/5 Documentation is well-organized, genuinely developer-friendly, and the Reader API is ergonomic. Full TypeScript support means your editor gets autocompletion for content queries. There's no delivery API in the traditional sense because content is read from the filesystem at build time, not fetched from a remote API. This is a strength for build-time performance and a limitation for real-time use cases. | ●●●●●3/5 The WP REST API is well-documented and stable. WPGraphQL has strong documentation and an active community, with the v2 release in 2025-2026 adding persisted queries and federation support. TypeScript type generation works via GraphQL Code Generator. The gap vs. native headless platforms is the complexity of the underlying data model, posts, meta fields, and custom post types create a schema that reflects decades of WordPress architecture decisions rather than clean content modeling. |
SDKs & Integrations How fast and friction-free is integration with modern frontend frameworks? Next.js, Astro, Nuxt, Remix, official examples or starter kits available. | ●●●●●5/5 First-class Astro and Next.js integration is a genuine differentiator. The Astro integration is official, maintained by the Keystatic team, and the setup takes under 30 minutes. The CLI scaffolds full starter projects. Remix support exists. No Nuxt support. For the specific stack of Astro or Next.js, this is the smoothest integration experience in the Git-based CMS category. | ●●●●●3/5 Vercel maintains an official Next.js + WordPress starter. WP Engine's Faust.js provides a more opinionated React framework for headless WordPress, though its development pace slowed in 2025-2026 as WP Engine refocused resources. Astro and Nuxt integrations exist via community packages. The ecosystem is real, but most integrations require more configuration than native headless CMS SDKs. |
Management API Does the platform provide a Management API for programmatic content operations? Bulk import, AI pipelines, scripting. | ●●●●●2/5 There is no management API for programmatic content operations from external systems. Content is authored through the admin UI or directly as files. You cannot push content via API from a pipeline or integrate with a third-party DAM or PIM. The GitHub API is technically available for scripting, but this is not a supported pattern. | ●●●●●2/5 The WP REST API supports create, read, update, and delete operations, but it is optimised for traditional editorial use - not bulk content operations, AI ingestion pipelines, or programmatic schema management. There is no concept of environment-scoped content operations or transactional batch writes native to the platform. |
Environments Does the platform support environment branching or staging environments? For safe content and schema testing before promoting to production. | ●●●●●3/5 Environment branching maps to Git branches. In GitHub mode, you can point Keystatic at a specific branch per environment, which gives you a basic staging setup. There's no first-class environment concept in the admin UI, no environment promotion workflow, and no preview environment linking. It works but requires deliberate branch management conventions. | ●●●●●2/5 WordPress has no native staging or environment branching. Most teams solve this with separate WordPress installs, WP Migrate DB for database syncing, or managed hosting environments (WP Engine, Kinsta) that provide staging slots. Schema changes cannot be previewed or rolled back in any structured way, a core limitation for iterative development. |
| Performance | ||
CDN Delivery Does the platform deliver content via a global CDN? And how does this affect real-world API response times for your frontend? | ●●●●●4/5 Content is read from the filesystem at build time, so there are no API calls at runtime and no CDN dependency for content delivery. This is a structural performance advantage for statically generated sites. Cloud Images on the Pro plan adds CDN-served optimized images. The absence of a runtime delivery API means no CDN latency to worry about and no rate limits to design around. | ●●●●●2/5 WordPress itself does not deliver content via a CDN, that depends entirely on your hosting provider and caching plugins (WP Rocket, W3 Total Cache). In a headless setup, API responses come from a PHP application server, not a globally distributed edge network. Latency is highly dependent on infrastructure choices and requires deliberate engineering to optimise. |
Deployment How straightforward is hosting and deployment? Does the platform reduce or add infrastructure complexity? | ●●●●●4/5 No separate CMS infrastructure to deploy or maintain. Keystatic runs as part of your Next.js or Astro app. Local mode requires zero configuration. GitHub mode requires setting up a Keystatic Cloud account or configuring a GitHub OAuth app, which is straightforward. No databases, no servers, no CMS-side deployments. This is meaningfully simpler than any hosted headless CMS. | ●●●●●2/5 Deploying and maintaining WordPress headless requires running two systems: the WordPress backend (PHP, MySQL, web server) and the decoupled frontend (Node.js, CDN, build pipeline). This is significantly more infrastructure than a managed headless CMS. WordPress.com and WP Engine simplify the WordPress side, but the overall system complexity is real. |
| Ecosystem & Longevity | ||
Plugin Ecosystem How mature and practically useful is the integration ecosystem? Not just quantity, are the integrations your clients actually need available and well-maintained? | ●●●●●2/5 The integration ecosystem is limited but growing. Official support for Astro, Next.js, and Remix exists. No official plugins for analytics, commerce, or third-party integrations. Thinkmill's broader KeystoneJS ecosystem provides some adjacency but Keystatic is a distinct project. Compared to Sanity or Contentful, the plugin and integration surface is minimal. | ●●●●●4/5 With over 59,000 plugins and 20+ years of community development, the WordPress ecosystem is unmatched in breadth. ACF, WooCommerce, Yoast, and hundreds of other well-maintained plugins solve real problems quickly. For headless specifically, WPGraphQL, Faust.js, and official hosting integrations with WP Engine and Kinsta make the setup viable. The caveat: plugin quality is highly variable, and in a headless context you only use a fraction of this ecosystem. |
Community How active and meaningful is platform development? Community health, release cadence, direction of travel. | ●●●●●3/5 Thinkmill is a credible backer with a strong open-source track record (KeystoneJS). The GitHub repository has ~2,000 stars and ~50 contributors as of early 2025, which is smaller than Decap CMS (16k stars) or TinaCMS (9k stars) but with substantially faster growth rate. Release cadence is active and the GitHub Discussions board is responsive. The risk is concentration: Thinkmill is a small agency and if priorities shift, the project could stall. | ●●●●●4/5 WordPress's community is the largest in the CMS world, 40% of the web runs on it, and WordCamp events run globally. WPGraphQL and the headless ecosystem specifically have an active community and regular releases. However, the overall direction of WordPress is toward the full-site editing and block editor experience, not headless-first architecture, so community energy for headless specifically is a subset of the whole. |
Final verdict The verdict score is a weighted average of the criteria above. | 3.5/5 | 2.5/5 |
Frequently Asked Questions
Headless WordPress vs Keystatic: which is better?
Based on Lucky Media's evaluation, Keystatic scores higher overall (3.5/5 vs 2.5/5). Keystatic is the best Git-based CMS available for Astro and Next.js projects today. It threads the needle between developer control and editor usability better than any competitor in its category. The tradeoff is real though: content lives in your repo, so it inherits every limitation of a Git workflow, and editorial features like approvals, scheduling, and localization are either missing or immature. For small developer-led teams shipping content-light sites, it's a strong fit. For marketing teams that need editorial independence, it's not the right tool.
When should I choose Headless WordPress?
Headless WordPress is best for: Teams with a large existing WordPress investment, a content team that refuses to leave the WP editor, or publishers serving multiple channels from a single editorial workflow.
When should I choose Keystatic?
Keystatic is best for: Developer-led teams building Astro or Next.js sites where content editors are comfortable working within a Git-adjacent workflow and the volume of content is manageable at file scale.
Still not sure which to pick?
We help funded startups and enterprises make the right call for their specific team and stack.
Talk to us