Keystone
Keystone is an open source headless CMS and application framework for Node.js — a Contentful and Sanity alternative where you define your content model in TypeScript and get a GraphQL API, an admin UI, and database migrations generated for you.
What is Keystone?
Keystone is an open source headless CMS and backend framework for Node.js. You describe your content model as a schema in TypeScript, and Keystone generates a GraphQL API, a React-based admin UI, and Prisma database migrations from it. Built by Thinkmill, it targets developers who want a code-first backend rather than a point-and-click CMS.
What is Keystone best for?
Keystone is best for developers building a custom backend or content-driven app who want their data model, access control, and business logic defined in code and versioned in git. It fits teams already working in TypeScript and GraphQL who need a bespoke admin UI without hand-building CRUD screens.
What can Keystone do?
- Generate a full CRUD GraphQL API automatically from your TypeScript schema
- Provide a polished React admin UI for editing content and data
- Enforce fine-grained access control at the list, field, and operation level
- Handle database schema and migrations through Prisma
- Support PostgreSQL, MySQL, and SQLite as the backing database
- Run hooks, custom queries, and mutations to add your own logic
- Include a structured rich-text document field with custom components
Is Keystone free?
Yes — Keystone is completely free and open source under the MIT license, with no paid tier, feature gating, or usage limits. There is no official managed cloud, so you host it yourself (Vercel, Render, Railway, AWS, or your own server) and only pay for that infrastructure and your database.
Where does Keystone fall short?
- No managed/hosted edition. Unlike Contentful or Sanity, there is no official Keystone cloud — you deploy and operate the Node.js app and database yourself.
- It’s a developer framework, not a turnkey CMS. There’s no UI-driven schema builder or plugin marketplace; you model content in code, so non-developers can’t stand it up alone.
- Smaller community and ecosystem than Strapi or Directus, which means fewer tutorials, integrations, and third-party plugins to lean on.
What does Keystone replace?
Keystone is a self-hosted, open source alternative to Contentful, Sanity, Prismic, and Storyblok. It does the same structured-content-over-an-API job, but you own the schema, the database, and the deployment, with no per-seat pricing or API usage caps.
FAQ
Is Keystone open source? Yes. Keystone (the current Keystone 6, published as @keystone-6/*) is MIT licensed and developed in the open on GitHub by Thinkmill.
Can I self-host Keystone for free? Yes. The software is free with no paid tier; you only pay for the server and database you run it on. There is no official managed hosting option.
Is Keystone a good Contentful alternative? For developer-led projects, yes — you get structured content and a GraphQL API without per-seat or usage pricing. If you need a hosted service with a no-code schema editor for non-technical teams, Contentful or Sanity may fit better.
What do I need to run Keystone? A Node.js environment and a supported database — PostgreSQL or MySQL for production (SQLite is fine for local development and embedded use).