plain

What plain is
plain turns Markdown and JSON files in a Git repository into a static website. Its browser admin lets editors change Markdown, preview pages live, upload media, save drafts and review version history; each save creates a repository commit, and older versions can be restored. The published site is plain HTML and CSS, so readers do not need JavaScript. It can be hosted wherever static files are served, without a server or database to run. Content stays in Markdown files and settings in a JSON file. Editors sign in with a GitHub access token scoped to the site repository; the token stays in the browser except when sent to api.github.com. Optional writing suggestions use an Anthropic API key that stays in the browser and is sent to Anthropic. Builds also publish read-only JSON files for scripts, apps or AI agents, with no keys or rate limits. The project includes fifteen starter themes, importers for Jekyll, VuePress and Joomla, and optional plugins. plain is free and open source, with web, API and self-hosted platforms.
Who it suits
It suits people who want to publish a static site from Git-managed content, including editors who prefer a browser admin to working directly with Git. It can also serve teams that need published JSON content for scripts or apps.
What it does well
- Browser editing includes live preview, drafts and version history.
- Published pages use HTML and CSS without JavaScript.
- Static files can be hosted without a server or database.
- Builds publish read-only JSON without keys or rate limits.
- Includes fifteen starter themes and three importers.
What to know first
- Editors need a GitHub access token to sign in.
- Optional AI suggestions require a user-provided Anthropic API key.
Getting started
- Open https://plain-cms.com/.
- Use a Git repository containing Markdown and JSON files for the site.
- Sign in to the browser admin with a GitHub access token scoped to the site repository.
- Edit Markdown in the admin, preview changes, and save to create a repository commit.
- Host the resulting static HTML and CSS wherever static files can be served.
Verdict
plain combines a browser-based editing workflow with Git commits and static-site publishing. Its free, open-source setup may suit teams comfortable managing a Git repository and hosting static files.
Questions
Is plain free?
Yes. It is listed as free and open source.
What platforms does plain support?
Its listed platforms are web, API, and self-hosted.
How does publishing work?
Each save in the browser admin writes a commit to the repository. The published site is plain HTML and CSS and can be hosted anywhere static files are served.
Does plain require GitHub sign-in?
The repository instructions describe signing in with a GitHub access token scoped to the site repository.
Does plain have AI writing assistance?
Optional writing suggestions use a user-provided Anthropic API key. The key stays in the browser and is sent to Anthropic.
Can other tools read the site content?
Each build publishes read-only JSON files for scripts, apps, or AI agents, without keys or rate limits.
Facts from plain's own pages
- AI features
- Optional AI writing assistance uses a user-provided Anthropic API key, which stays in the browser and is sent to Anthropic. · github.com, 9 Oct 2026
- API
- Each build publishes read-only JSON API files that need no keys and have no rate limits. · github.com, 9 Oct 2026
- Audience
- The About page describes the browser admin as an option for people who would rather not work directly with Git. · plain-cms.com, 9 Oct 2026
- Browser editor
- The browser admin edits Markdown with a live preview, media uploads, drafts, version history, and optional AI help. · plain-cms.com, 9 Oct 2026
- Content API
- Each build publishes read-only JSON files that scripts, apps, or AI agents can consume without keys or rate limits. · github.com, 9 Oct 2026
- Content storage
- Content is stored as Markdown files in a Git repository, with settings in a JSON file. · plain-cms.com, 9 Oct 2026
- GitHub sign-in
- The repository instructions describe signing in to the admin with a GitHub access token scoped to the site repository. · github.com, 9 Oct 2026
- Hosting
- The static site can be hosted anywhere static files live, with no server or database to run. · plain-cms.com, 9 Oct 2026
- Integrations
- The repository describes optional plugins for search, contact forms, reading time, forms sent to a configured backend, and GoatCounter page-view counts. · github.com, 9 Oct 2026
- Intended users
- The About page describes the browser admin as intended for people who would rather not use Git directly. · plain-cms.com, 9 Oct 2026
- Maker details
- The About page does not state the maker's name, headquarters, or founding date. · plain-cms.com, 9 Oct 2026
- Migration
- The repository includes importers for Jekyll, VuePress, and Joomla, which create content, media, and redirect files for review. · github.com, 9 Oct 2026
- Open source
- plain is open source and licensed under MIT. · github.com, 9 Oct 2026
- Optional AI
- The admin can use an Anthropic API key for optional writing suggestions, and the key stays in the browser and is sent only to Anthropic. · github.com, 9 Oct 2026
- Plugins
- The project includes search and reading-time plugins, plus a contact-form plugin described as a disabled reference. · github.com, 9 Oct 2026
- Product
- plain turns Markdown and JSON files in a Git repository into a static website. · plain-cms.com, 9 Oct 2026
- Published sites
- The published site is plain HTML and CSS and requires no JavaScript to read. · plain-cms.com, 9 Oct 2026
- Publishing
- Each save in the browser admin writes a commit to the repository, and older versions can be restored. · plain-cms.com, 9 Oct 2026
- Runtime
- The About page describes one runtime dependency and a core small enough to read in an afternoon. · plain-cms.com, 9 Oct 2026
- Static output
- The published site is plain HTML and CSS, and reading it does not require JavaScript. · plain-cms.com, 9 Oct 2026
- Themes
- The repository says fifteen starters ship with the product, covering uses such as blogs, portfolios, restaurants and documentation. · github.com, 9 Oct 2026
- Token handling
- The repository instructions state that the GitHub token stays in the browser except when sent to api.github.com. · github.com, 9 Oct 2026
Where plain stands on Freedom251
- Git-Based CMS#17 of 23