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.
Getting started with Keystone 6 →
Learn how to use our CLI to get Keystone’s Admin UI and GraphQL API running in a new local project folder.
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 for free.
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.
Keystone 5 vs Next. Which should you use? →
We’re graduating Keystone 6 soon. If you’re wondering which version to start a new project with today, this guide is for you.
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.
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.
Understanding Hooks →
Learn how to use Hooks within your schema to extend Keystone’s powerful CRUD GraphQL APIs with your own business logic.
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
Context API →
The primary API entry point for all of the run-time functionally of your Keystone system.
Query API →
A programmatic API for running CRUD operations against your GraphQL API.
Database API →
A programmatic API for running CRUD operations against the internal GraphQL resolvers in your system.
GraphQL
GraphQL API →
Generates a CRUD (create, read, update, delete) GraphQL API based on the schema definition provided in your system configuration.
Query filter API →
A list of the filters you can query against for each field type.
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- 2000+ members
- Personalised support