Skip to content
KeystoneJS LogoKeystoneJS
👋🏻 Keystone 5 has officially moved to maintenance only. For the latest release of Keystone please visit the Keystone website.

Headless CMS & GraphQL API for Node

Configure your schema in JavaScript, and KeystoneJS will generate a powerful GraphQL API and CMS.

Get StartedDocumentationBlogView on GitHub

See how to get a "To Do" app up and running in under 4 minutes with the KeystoneJS CLI

schema => ({ GraphQL, AdminUI })

A KeystoneJS instance acts as a function of your schema which creates a GraphQL API for querying and an Admin UI for managing your data.

// Define your `lists` and `fields`
keystone.createList('Todo', {
fields: {
task: { type: Text },
keystone.createList('User', {
fields: {
name: { type: Text },
email: { type: Text },
# Generated GraphQL schema
type Mutation {
createTodo(..): Todo
updateTodo(..): Todo
deleteTodo(..): Todo
createUser(..): User
updateUser(..): User
deleteUser(..): User
type Query {
allTodos(..): [Todo]
Todo(..): Todo
allUsers(..): [User]
User(..): User
type Todo {
id: ID
task: String
type User {
id: ID
name: String
email: String
Learn more about lists and fields

Why KeystoneJS

We believe it’s the ideal back-end for React, Vue or Angular applications, Gatsby and Next.js websites, static sites, mobile applications and more.

Fully featured

Zero assumptions doesn’t mean zero features. Keystone comes with dozens of features out of the box including Lists, Fields, Access Control, Authentication, and Apps. You can add and configure each of these, as well as extend, modify or build your own.

Read more

Highly extensible

KeystoneJS provides an extensible admin interface and a powerful GraphQL API. These tools, and the building blocks Keystone provides, will allow you to create any type of application.

Read more

Own your data

Provide your own PostgreSQL or MongoDB database for Keystone to connect to, and deploy your application anywhere. Have complete freedom of choice when hosting your data, API, and front-end and admin applications.

Read more

Get started in minutes

Our quick start guide will get you up and running in just a few minutes. Let's build a simple todo app with a fresh install of Keystone!

Read more

Use with the technology of your choice

KeystoneJS integrates seamlessly with any front-end framework, but can also be run as a headless GraphQL API with optional Admin UI.

Static Files

Serve HTML, CSS, JS, images and any other static resources using an Express static server. This can be quick and easy way to deploy a simple front-end with a KeystoneJS application.

Read more


Take the pain out of creating Universal React apps with Next.js. Next.js is Zero Setup, Fully Extensible and Ready for Production.

Read more


Nuxt is a progressive framework based on Vue.js to create modern web applications. It can be used to create from static landing pages to complex enterprise ready web applications.

Read more


The primary focus of KeystoneJS is the GraphQL API and Admin UI. Because of this KeystoneJS works with all major front-end frameworks and is headless by default.

Read more