Open-source, self-hosted headless CMS in TypeScript that generates REST and GraphQL content APIs from your content models.
keystonejs/keystone
A headless CMS for Node.js that generates a GraphQL API and admin UI from your schema definition.
Open-source alternative to:Contentful
Strapi
- Stars
- 9,980
- Forks
- 1,260
- Open issues
- 145
- Last commit
- 2 days ago
What is it?
Keystone is a headless CMS and app framework for Node.js. You describe your data schema in code, and Keystone generates a GraphQL API along with a management interface for creating and editing content, so you don't have to write that boilerplate yourself.
The project is built with GraphQL on the backend and React for the admin UI, and is distributed as the @keystone-6/* packages on npm. It is aimed at developers who want the flexibility of a custom back end without setting up CRUD endpoints and admin screens by hand. Getting started is done through the create-keystone-app CLI.
The repository also hosts examples, guides and an API reference on the project website. Keystone 5 is in maintenance mode and lives in a separate repository.
Key features
- 01Generates a GraphQL API from a declarative schema definition.
- 02Provides an admin management UI for editing content.
- 03Built on Node.js with TypeScript and React.
- 04Distributed as modular @keystone-6/* npm packages.
- 05Scaffolds new projects with the create-keystone-app CLI.
Use cases
- Building a content-managed website or blog with a custom back end.
- Creating an internal admin tool for managing app data without writing CRUD screens.
- Serving content to web or mobile front ends through a GraphQL API.
Quick start
- 1
Create a new Keystone app with the CLI
npm create keystone-app@latest - 2
Open the Getting Started guide for next steps
Things to know
- Requires Node.js active LTS or maintenance versions; other Node versions may cause problems.
- Keystone 5 is in maintenance mode, so new projects should use Keystone 6.
Topics
FAQ
- What is keystone?
- A headless CMS for Node.js that generates a GraphQL API and admin UI from your schema definition. Keystone is a headless CMS and app framework for Node.js. You describe your data schema in code, and Keystone generates a GraphQL API along with a management interface for creating and editing content, so you don't have to write that boilerplate yourself.
- Is keystone free to use? What license does it have?
- keystone is open source under the MIT license. Check the license terms before using it in commercial products.
- Is keystone still maintained?
- Actively maintained. The last commit to keystone was on Oct 20, 2026.
- What can I use keystone for?
- Building a content-managed website or blog with a custom back end. Creating an internal admin tool for managing app data without writing CRUD screens. Serving content to web or mobile front ends through a GraphQL API.
- How do I install keystone?
- Create a new Keystone app with the CLI: npm create keystone-app@latest Open the Getting Started guide for next steps
- Where can I get keystone?
- The source code and installation instructions are on GitHub: https://github.com/keystonejs/keystone
Summary generated by AI from the project's README. GitHub stats refresh daily.
Related projects
Open-source headless CMS that edits Markdown, MDX, JSON and YAML content stored in your own Git repository, with a GraphQL API.
A self-hosted PHP content management system for building custom websites and digital experiences, with a Twig templating layer and auto-generated GraphQL API.
Open-source Next.js-native headless CMS and app framework with a TypeScript backend and customizable React admin panel.
Wraps any SQL database with instant REST and GraphQL APIs, a visual admin Studio, and a native MCP server for AI agents.
Open source, headless Node.js publishing platform for blogs, memberships, subscriptions and newsletters.