Content and publishing · Edition No. 14 · 8 Sep 2026

Thinkmill/keystatic

A writing screen for the Markdown blog posts that already live in the website project, saved back as files with no database.

← Content and publishingRead the whole edition →
01

Thinkmill/keystatic

💎 hidden gem
Keystatic: an editor for file-based sites. Edits blog posts kept as files in a site's code.

2.5k stars · MIT · @keystatic/core 0.6.9 on npm (2026-01-26); the GitHub releases page is empty, so npm is the only provable source · Track this in Rising ↗

A writing screen for the Markdown blog posts that already live in the website project, saved back as files with no database.

Verified25 Oct 2026

Radar check

What we found when we opened it. Every bar is one fact, with its date.

Alive90

Last code pushed 1 Oct 2026, 26 days before this check.

Releases—

No releases published on GitHub; the code date above is the one to trust.

Maturity70

Public since February 2023, a little over 3 years.

Adoption68

2,476 stars and 173 forks.

Activity65

36 commits and 24 new issues in the last 90 days.

Community80

67 contributors. 35 pull requests merged in 90 days.

Security40

No security policy file says how to report a problem. No published security advisories.

Licence MIT: permissive: use it for anything, keep the notice
How the bars are scored
  • Alive. Days since the last code push: a week or less 100, a month 90, three months 70, six months 50, a year 30, eighteen months 15, older 0.
  • Releases. Age of the latest GitHub release, on a similar scale; no bar when the project publishes no releases.
  • Maturity. Age of the project: eight years 100, five 90, three 70, two 55, one 40, six months 25, younger 10.
  • Adoption. Stars on a log scale: 100,000 stars is 100, 10,000 is 80, 1,000 is 60, 100 is 40.
  • Activity. Commits in the last 90 days: 300 or more 100, 100 85, 30 65, 10 45, any 25.
  • Community. People who have contributed: 100 or more 100, 30 80, 10 60, 5 40, 2 25, one 10.
  • Security. A published security policy 80, none 40; published advisories are listed, not scored.

Checked by Repo Radar on 25 Oct 2026 from the repository on GitHub. Covered in Edition 14.

▶Repo detailsthe review · specs · pros & cons · install

What it does

Keystatic is a content editor for websites built from files. The post fields are described once in a small settings file written in TypeScript, which is JavaScript with type checking added. Keystatic builds the editing screen from that description. It reads and writes Markdown, YAML and JSON files, which are all plain text formats. It can run on a local machine while a site is being developed, and it can run against GitHub so that posts are editable in a browser. It handles two languages side by side, one entry for each. It does not store anything in a database, and it does not build or host the website; the site generator still does that.

Why it matters

Who it suits. It suits a site built with a generator that keeps posts as files, where writing a post and fixing a typo both mean opening a code editor. It suits a two-language site, because the two entries sit side by side and a missing translation is visible. Skip it once the content has grown past posts into records with many fields, and skip it if browser editing is needed on the first day.

Verdict. Worth an hour on a file-based site, and most of that hour goes on the settings file. The npm package has sat at 0.6.9 since January 2026 while code kept landing in the repository, so expect slow releases rather than a stopped project. The project's own README still calls it experimental. For editing from a phone today, sveltia/sveltia-cms (#2) is the shorter road, and for content with many fields it is payloadcms/payload (#4).

Stars2.5k
LicenceMIT
Latest@keystatic/core 0.6.9 on npm (2026-01-26); the GitHub releases page is empty, so npm is the only provable source
Summary (Key Points)from the README
Key features
  • TypeScript API: Content is defined and accessed through a TypeScript interface, with first-class CMS editing.
  • File-based storage: Content is stored as Markdown or YAML/JSON files, so no database is required.
  • Direct GitHub connection: Keystatic connects directly to GitHub to read and write content.
  • Source code left alone: The README says it doesn't mess with your source code.
  • Front-end framework fit: It is built for modern front-end frameworks, named as Next.js, Remix and Astro.
  • Keystone heritage: It is built with DNA from Keystone.
  • Template collection: A growing set of templates is available to start from.
  • Feedback channels: The README points to a Twitter account, a mailing list and a GitHub discussion for feedback.
Ways to install
Platform or methodWhat it needsEffort
Guides or CLI (recommended for trying Keystatic)Not stated in the READMENot stated in the README
Local development in the monorepoNode.js v18 and pnpmRun the commands given in the README; if pnpm errors, use corepack
Important
  • Experimental status: The README says things are experimental at the moment.
  • Dev projects are not examples: The dev projects in this repo are for testing and feature development and are not good examples of real Keystatic projects.
  • Node version: Local development requires node.js v18.
  • pnpm setup: If pnpm fails, the README advises using corepack, uninstalling pnpm, and running corepack enable pnpm.
  • License: The project is licensed under the MIT License, with copyright held by Thinkmill Labs Pty Ltd (2023).

Written by an AI model from the project’s README; not part of the review, and it can be wrong.

Good
  • No database and no extra server. The posts stay as files in the project, so there is nothing new that can fail at three in the morning.
  • The settings file is type checked as it is written. A misspelled field fails at once rather than in six months.
  • It runs locally during development and against GitHub for browser editing, so one setup covers both.
Watch for
  • The repository publishes no GitHub releases, so the version has to be read from npm. @keystatic/core is still 0.6.9, the same version as nine months ago.
  • The version number starts with a zero and the README calls the project experimental. Pin the version that was tested.
  • Browser editing needs a GitHub app connected to an account. That is another half hour of setup and one more thing that can break.
Install
cd my-astro-site
npm install @keystatic/core @keystatic/astro
Screenshots
Thinkmill/keystatic: GitHub preview card

On Stack Radar: Marketing & Growth › Websites & Landing Pages › CMS & Blogging.

Get the next edition in your inbox

A dozen repositories, opened and checked. The licence read, the last release dated, and the ones that did not make it named with the reason. It is the half most lists leave out.

No tracking pixels. One click to leave. The archive stays free either way.

We use your address to send the edition and nothing else. Confirm by email, leave in one click. How we handle it.