Keystone
TypeScript-first headless CMS with a focus on flexible, code-defined schemas.
VISIT KEYSTONEKey takeaway: KeystoneJS is a code-first headless CMS and GraphQL backend for TypeScript teams: define your schema in code and get an Admin UI and a typed GraphQL API generated for you. Pick it when you want a programmable content and application backend rather than a turnkey editor product.
Quick facts
- CategorySelf-hosted
- LanguageTypeScript
- PricingOpen source
- LicenseMIT
- Created2014
- GitHub stars9.4k
- Statusmature
What it is
Keystone (Keystone.js, then KeystoneJS) is a long-running TypeScript-first headless CMS. Code-defined schemas, GraphQL API, admin UI generated from schema. Strong typing, mature, smaller community than Payload or Strapi.
Best for
- TypeScript teams wanting a code-first schema without Payload's opinions
- Existing Keystone deployments
When not to pick it
For new projects in 2026, Payload usually wins on momentum and feature depth. Keystone is fine but the trajectory is slower.
My take
Solid, but Payload took the lead in this segment in 2024. New projects mostly pick Payload.
Schema-as-code backend
Keystone is closer to an application framework than a marketing CMS. You describe lists and fields in TypeScript, and it generates a GraphQL API and an Admin UI, with access control and hooks expressed in code. That suits products where the CMS is really the backend for an app, not just a blog, and where developers want full control of the data model.
Who it is and is not for
Keystone rewards teams that are comfortable owning a Node backend and want code-first flexibility. It is less of a fit for non-technical, marketing-led content teams who want a polished editor and visual workflows out of the box; for those, Storyblok or a hosted SaaS lands better. Pace of releases has been steadier than spectacular, so weigh roadmap momentum for long-lived projects.
Frequently asked questions
Is KeystoneJS a CMS or a framework?
Both, leaning framework. You define your schema in TypeScript and Keystone generates a GraphQL API and an Admin UI, so it works as a programmable content and application backend rather than a turnkey editor.
Is KeystoneJS free?
Yes. Keystone is open source and free to self-host on your own Node infrastructure and database.
KeystoneJS or Payload?
Both are code-first TypeScript backends. Payload has stronger momentum, a polished admin, and native Next.js integration; Keystone leans more toward a GraphQL-first application backend. For most new content briefs, Payload is the safer bet.
Links
Similar tools you should also consider
If Keystone is your pick, the next conversation is short
The 30-min call is where your CMS choice becomes a real architecture, an editorial workflow your team can adopt, and a price range you can take to your stakeholders. Describe your content estate, your team\'s muscle memory, your timeline. I tell you whether Keystone is genuinely your fit.