Keystone review
Code-first GraphQL backend
Keystone sits between a CMS and an application framework. You declare lists and fields in TypeScript, and Keystone generates a Prisma schema, a typed GraphQL API with fine-grained access control, and an admin interface. It is closer to a backend toolkit that happens to include content management than to a CMS with an API bolted on.
That makes it appealing when the content model is really an application data model, and when access control matters at the field level rather than the role level.
Who Keystone is for
Product teams building an application where content is one part of the data model, and who want a typed GraphQL layer and an admin UI without writing either.
Not the right tool for a marketing site, where the editor experience matters more than the type system.
Strengths and limits
What it does well
- Schema in TypeScript with generated types end to end, so the API and the client agree by construction.
- Access control is genuinely fine-grained, down to individual fields and operations, which most CMS tools do not attempt.
- Prisma underneath means the database stays legible and migrations are a solved problem.
- MIT licensed and self-hosted with no commercial tier, so nothing is gated.
Where it falls short
- The admin UI is functional rather than pleasant, and it is not a tool you hand to a marketing team.
- No hosted option at all, so you own deployment, scaling and backups.
- Content-specific features such as live preview, visual editing and media transforms are absent.
- Development activity is steadier than it is fast, so treat the roadmap as stable rather than evolving.
Keystone pricing
Free and MIT licensed with no paid tier and no hosted service. Costs are your Node host and your Postgres instance.
Verdict
A very good choice when the real requirement is a typed GraphQL backend with an admin panel, and content is part of a wider data model. In that context it saves weeks.
If what you actually need is a CMS for a marketing site, the editor experience will disappoint. Payload covers similar ground with a much better admin UI.
Keystone FAQ
Is Keystone free?
Yes, entirely. MIT licensed, self-hosted, with no paid tier and no hosted service. You pay for a Node host and a database.Keystone or Payload?
Both are code-first, MIT and self-hosted. Payload has a far better admin UI, native Next.js integration and stronger content features. Keystone leans more toward being a GraphQL application backend. For a website, Payload; for an app data layer, Keystone is closer.
This is an independent review. We have no affiliate relationship with Keystone, earn nothing if you sign up, and no vendor pays for placement in the directory. Prices were read from the vendor's own pages in August 2026 and change without notice.