Skip to Page NavigationSkip to Page NavigationSkip to Content
Keystone 6 is now in General Availability!
Why KeystoneUpdatesDocumentation
Edit on GitHub

Developer Docs

Using Keystone 5? Find the docs at v5.keystonejs.com

Need answers to Keystone questions? Get help in ourCommunity Slack

The Keystone Experience

Discover the vision behind Keystone and what it's like to work with. If you’ve just heard of Keystone, start here first:

For Developers →

Built the way you’d want it made. Keystone fits with the tools you know and love.

For Editors →

The configurable editing environment you need to do your best work.

For Organisations →

Own your data. Start fast. Find your audience anywhere. Scale on your terms.

Walkthroughs

Step-by-step instructions for getting things done with Keystone.

Keystone Quick Start

Take a tour of Keystone in minutes with our CLI starter project

Lesson 1: Installing Keystone

Get Keystone up and running with your first content type

Lesson 2: Relating things

Connect two content types and learn how to configure the appearance of field inputs

Lesson 3: Publishing workflows

Support publishing needs with Keystone's select and timestamp fields

Lesson 4: Auth & Sessions

Add sessions, password protection, and a sign-in screen to your Keystone app

Lesson 5: Rich Text

Add a powerful document field to your app and learn how to configure it to meet your needs

How to embed Keystone + SQLite in a Next.js app

Learn how to run Keystone in the same folder as your frontend code and commit everything to Git. You end up with a queryable GraphQL endpoint running live on Vercel.

Guides

Practical explanations of Keystone’s fundamental building blocks. When you’re trying to get something done, Keystone guides show you how to think about, and get the most out of each feature.

Example projects

A growing collection of projects you can run locally to learn more about Keystone features. Use these as a reference for best practice, and a jumping off point when adding features to your own Keystone project. View on Github →

Blog

A basic Blog schema with Posts and Authors. Use this as a starting place for learning how to use Keystone. It’s also a starter for other feature projects.

Task Manager

A basic Task Management app, with Tasks and People who can be assigned to tasks. Great for learning how to use Keystone. It’s also a starter for other feature projects.

Extend GraphQL Schema

Shows you how to extend the Keystone GraphQL API with custom queries and mutations. Builds upon the Blog starter project.

Default Values

Demonstrates how to use default values for fields. Builds upon the Task Manager starter project.

Virtual fields

Implements virtual fields in a Keystone list. Builds on the Blog starter project.

Document field

Illustrates how to configure document fields in your Keystone system and render their data in a frontend application. Builds on the Blog starter project.

Testing

Shows you how to write tests against the GraphQL API to your Keystone system. Builds on the Authentication example project.

Authentication

Adds password-based authentication to the Task Manager starter project.

JSON Field

Illustrates how to use the json field type. Builds on the Task Manager starter project.

Custom Field View

Adds a custom Admin UI view to a json field which provides a customised editing experience for users. Builds on the Task Manager starter project.

Custom Field Type

Adds a custom field type based on the integer field type which lets users rate items on a 5-star scale. Builds on the Blog starter project.

Custom Admin UI Pages

Adds a custom page in the Admin UI. Builds on the Task Manager starter project.

Custom Admin UI Logo

Adds a custom logo component in the Admin UI. Builds on the Task Manager starter project.

Custom Admin UI Navigation

Adds a custom Navigation component to the Admin UI. Builds on the Task Manager starter project.

API references

Configuration

System Configuration API

Keystone’s config function accepts an object representing all the configurable parts of your backend system.

Schema API

This is where you define the data model, or schema, of your Keystone system.

Fields API

Defines the names, types, and configuration of the fields in a Keystone list.

Access Control

Configures who can read, create, update, and delete items in your Keystone system

Hooks

Let you execute code at different stages of the mutation lifecycle when performing create, update, and delete operations.

Session

Lets you configure session management in your Keystone system.

Authentication

Supports authentication against a password field, creating initial items, password resets, and one-time authentication tokens.

Context

GraphQL

A map of our awesome contributors

Learn with others in a supportive community

Share your work and get the help you need in the Keystone community Slack: an inclusive space to share ideas and explore what‘s possible.

Join the community Slack
  • 2500+ members
  • Personalised support