keystatic is a free, open source content management systems (cms) project written in TypeScript and released under MIT. It has 2,494 GitHub stars, 181 forks and 184 open issues, and was last pushed 1 months ago. On this registry it ranks #34 of 70 tracked projects in Content Management Systems (CMS), with 5 head-to-head comparisons available. It gained 69 stars over the last 30 tracked days.

What is keystatic?

Keystatic is a TypeScript-based content management system that stores content as Markdown and YAML/JSON files in your own repository rather than in a database, aimed at developers building sites with modern front-end frameworks such as Next.js, Remix and Astro.

What it is

Keystatic is a content management system written in TypeScript that describes its content schema through a TypeScript API and persists that content as plain Markdown, YAML and JSON files. It is built with DNA from Keystone, and it connects directly to GitHub instead of routing content through an external data store. The project lives in the JavaScript and TypeScript ecosystem, and it is designed to fit into existing development workflows rather than replace them, with a stated goal of not messing with your source code.

The concrete problem it solves is the split between a headless CMS and the repository that actually holds the site. Conventional CMS products keep content in a database, which means content lives somewhere other than the code that renders it, and someone has to run and back up that database. Keystatic replaces that database-backed content layer: the content files sit alongside the code, and the CMS experience is layered on top of them. Authors get an editing interface, while developers keep content in version control, in the same formats the site already reads.

Key capabilities

  • Content stored as Markdown, YAML and JSON files in the repository, with no database to provision or operate.
  • TypeScript API for declaring content schemas, so content shape is expressed in the same language as the surrounding app.
  • Direct GitHub connection, keeping content edits in sync with the repository rather than a separate content store.
  • Support for Markdoc in addition to Markdown, as reflected in the project's topic list.
  • The project ships a CLI, which the documentation recommends over running the example projects in the monorepo.
  • A growing collection of templates intended as starting points for real projects.
  • Development inside the monorepo uses pnpm and requires node.js v18.

Who uses it and how

  • Teams building content-driven sites in Next.js, Remix or Astro that want an editing interface but not a hosted content database.
  • Developers who want content changes to arrive as commits, so review, history and rollback follow the same path as code changes.
  • Contributors working on Keystatic itself, who install dependencies with pnpm and run individual examples from dev-projects/{example} with pnpm run dev.
  • Users evaluating the product early, who are directed to keystatic.com guides and templates rather than the in-repo dev projects, since those projects exist for testing features and are not representative examples.

Getting started

The recommended path is to follow the guides at keystatic.com or use the CLI rather than running the projects in this repository. For local development inside the monorepo, run pnpm install, then cd dev-projects/{example} and pnpm run dev, on node.js v18 with pnpm; if pnpm errors, use corepack, uninstall pnpm and run corepack enable pnpm.

How it compares

The provided facts name no paid products that Keystatic replaces, and they name no comparable tools either. On the evidence available, it stands alone in this registry, so any comparison to other content systems would be invention rather than documentation.

When to use it — and when not to

A self-hoster takes on the surrounding stack rather than a database: the repository, the GitHub connection for content editing, and the front-end framework that renders the Markdown, YAML and JSON files. Anyone who needs a stable, production-supported CMS today should wait, because the project describes itself as experimental and says things are still being worked on. The README is thin on operational detail, and with 184 open issues the surface area is still moving; the licence, by contrast, is clear, since Keystatic is MIT licensed and copyright Thinkmill Labs Pty Ltd.

project readme (upstream, from github) — read inline



First-class CMS experience, TypeScript API, Markdown & YAML/JSON based, no DB.

Built with DNA from Keystone, connects directly to GitHub and doesn’t mess with your source code. Conceived for modern front-end frameworks like Next.js, Remix and Astro, designed to fit into your workflow.

Status

We're working on it! Things are experimental at the moment.

But if you're curious and brave, check out keystatic.com to try it out (and check out our growing collection of templates).

Follow @thekeystatic on Twitter, and subscribe to our mailing list for updates.

Feedback on how we're going, what you're looking for, and what you'd like to see next is super helpful as we progress! Join the discussion on GitHub


Developing Keystatic

If you want to try Keystatic, we recommend following our guides or using the CLI rather than running the dev projects in this repo.

They're intended for testing and developing features, and aren't great examples of actual Keystatic projects.

However, if you want to spin up Keystatic for local development in the monorepo, you can! Run the following:

pnpm install
cd dev-projects/{example}
pnpm run dev

Requirements

  • node.js v18
  • pnpm

Note: if you are getting an error with pnpm, make sure you're using corepack, uninstall pnpm, and then run corepack enable pnpm.


License

Copyright (c) 2023 Thinkmill Labs Pty Ltd. Licensed under the MIT License.

Frequently asked questions

Is keystatic free to use?

keystatic is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does keystatic do?

First class CMS experience, TypeScript API, Markdown & YAML/JSON based, no DB

What is keystatic written in?

keystatic is primarily written in TypeScript. Its source is publicly available at https://github.com/Thinkmill/keystatic, and it has 2,494 GitHub stars.