KeystoneJS is a powerful headless CMS and web application framework. Define your schema in TypeScript — it generates a GraphQL API and admin UI.
What You Get for Free
- Schema-driven — TypeScript schema generates everything
- GraphQL API — auto-generated from your lists
- Admin UI — auto-generated CRUD interface
- Authentication — session-based auth built-in
- Access control — field and operation level
- Document field — structured content editing
- Prisma ORM — PostgreSQL or SQLite
Define a List
import { list } from '@keystone-6/core';
import { text, timestamp, select } from '@keystone-6/core/fields';
export const Post = list({
fields: {
title: text({ validation: { isRequired: true } }),
status: select({ options: ['draft', 'published'] }),
publishedAt: timestamp(),
},
});
KeystoneJS vs Payload
| Feature | Keystone | Payload |
|---|---|---|
| API | GraphQL | REST + GraphQL |
| ORM | Prisma | Own ORM |
| Admin | Auto-generated | Customizable React |
Need a GraphQL CMS? Check my work on GitHub or email spinov001@gmail.com for consulting.
Top comments (0)