Skip to Page NavigationSkip to Page NavigationSkip to Content

Developer Docs

Using Keystone 5? Find the docs at

Need answers to Keystone questions? Get help in ourCommunity Slack

Looking for enterprise-grade consulting & support?Learn more

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:


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


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.

Command line foundations

Keystone’s CLI helps you develop, build, and deploy projects. This guide explains all you need to standup a new backend in the terminal.

Understanding Relationships

Learn how to reason about and configure relationships in Keystone, so you can bring value to your project through structured content.

GraphQL Queries - Filters

Query filters are an integral part of Keystone’s powerful GraphQL APIs. This guide will show you how to use filters to get the data you need from your system.

Understanding Hooks

Learn how to use Hooks within your schema to extend Keystone’s powerful CRUD GraphQL APIs with your own business logic.

How To Use Document Fields

Keystone’s document field is a highly customisable rich text editor that stores content as structured JSON. Learn how to configure it and incorporate your own custom React components.

Document Field Demo

Test drive the many features of Keystone’s Document field on this website.

Custom Fields

Learn how to define your own custom field types in Keystone, with customisable backend data structure, and Admin UI appearance.

Testing Guide

Learn how to test the behaviour of your Keystone system to ensure it does what you expect.

Virtual fields

Virtual fields offer a powerful way to extend your GraphQL API. This guide introduces the syntax and shows you how start simply and end up with a complex result.

Choosing a Database

Keystone supports Postgres, MySQL and SQLite. This guide explains how to choose the best for your project.

Images and Files

Learn how to store and manage Images and Files in Keystone.

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 →


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.


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


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

JSON Field

Illustrates how to use the json field type.

Custom Field View

Adds a custom Admin UI view to a json field which provides a customised editing experience for users.

Custom Field Type

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

Custom Admin UI Pages

Adds a custom page in the Admin UI.

Custom Admin UI Logo

Adds a custom logo component in the Admin UI.

Custom Admin UI Navigation

Adds a custom Navigation component to the Admin UI.

Document Field Customisation

Example to demonstrate customisation of Keystone's document field and document renderer.

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