Plain: A Database-Free, Git-Native CMS in Vanilla JS
Plain stores content as Markdown and JSON files in a Git repo, needs no database or server, and builds a static site plus a JSON API — open source.
Plain is a Git-native CMS that stores an entire website as plain text files, eliminating the need for a database, server, or ongoing maintenance. Content lives in Markdown and settings in JSON, giving you version control and collaboration through Git, while the build step turns everything into fast static HTML pages plus a read-only JSON API. The engine itself is vanilla JavaScript with a single dependency (marked) and works even without JavaScript enabled in the browser.
Writers can edit files directly or use the browser-based editor at /admin/, which offers draft saving, publishing, live preview, image uploads, and one-click restore from page history. Authentication happens via a scoped GitHub access token, and adding your own Anthropic API key optionally unlocks AI-assisted editing features like writing improvements, title suggestions, and meta description generation.
The project ships with fifteen ready-made themes (blog, portfolio, restaurant, documentation, and more) and a folder-based plugin system; plugins like search and contact forms come built in, and the hook API is simple enough that new plugins can be generated by an AI agent from a single prompt. Migration tools for existing sites such as Jekyll, including URL redirect mapping, are included, and the whole project is open source under the MIT license.
This synthesis was produced from its source by AI; there is no human editor or manual review step. How we work