Skip to content
This repository was archived by the owner on May 10, 2026. It is now read-only.

clearcms/clear-2026-05

Repository files navigation

clear

The single-binary CMS where your content lives as plain JSON files in a folder you own. Edit in a polished admin. cp -r is your backup. git diff is your audit log. The CMS is optional infrastructure on top of files that survive without it.

Status: alpha. v1 is in active development. The bucket protocol is the public contract; the rest of the surface may move.

What clear is

A headless content management system distributed as one Go binary. The binary contains the HTTP API, the admin UI, an embedded SQLite index, and everything else needed to run on a fresh server. Content lives in a bucket — a folder of plain JSON files, organised by a documented protocol. The bucket is the source of truth. The CMS is the editor on top.

You read content from your site (Astro, Next, Remix, anything) using the @clearcms/sdk npm package, or by reading the JSON files directly.

Quick start

Install the latest binary:

curl -fsSL https://get.clear.io | sh
clear --help

Or with Docker:

docker run --rm -p 8080:8080 \
  -v $(pwd)/bucket:/var/lib/clear/bucket \
  ghcr.io/clearcms/clear:latest

Open http://localhost:8080, follow the first-run admin setup, and your bucket is ready at ./bucket.

In your site code:

npm install @clearcms/sdk
import { createClient } from "@clearcms/sdk";

const cms = createClient({ baseUrl: "http://localhost:8080" });
const posts = await cms.listItems("posts");

Why clear

Other content systems make a structural commitment that prevents them from offering this:

  • Sanity, Contentful — content lives in their managed service.
  • Payload, Strapi — content lives in your Postgres or MongoDB. Portable, but not file-system native.
  • Pocketbase — content lives in a single SQLite blob. One file, but opaque without the binary.
  • TinaCMS — closest, but git-coupled (every edit becomes a commit).
  • WordPress — content in MySQL. Migration is famously painful.

clear commits to the inverse: your content is plain JSON files you can read, diff, copy, version-control, or walk away with at any time. The binary is replaceable; the content is yours. See docs/vision.md for the longer argument.

What v1 ships

  • A single Go binary (~25–80 MB) for macOS, Linux, and Windows
  • Embedded admin UI (Vite + React, polished editing surfaces)
  • File-based bucket protocol with fs and r2 adapters (github adapter as a stretch)
  • Schema-first content modelling, with TypeScript codegen for the SDK
  • REST HTTP API described by an OpenAPI document
  • @clearcms/sdk for adopters to read content from any TypeScript site

What v1 does not ship

clear is headless-only in v1. Site rendering, theme tokens, block libraries, visual page designers, plugin loaders, and multi-tenancy are all out of scope. See CLAUDE.md for the full anti-goals list.

Project layout

Path What lives there
cmd/clear/ Binary entry point
internal/ Go server: API, bucket adapters, schema engine, SQLite index
admin/ Vite + React admin SPA, embedded into the binary
sdk/ @clearcms/sdk TypeScript package for adopters
docs/ Vision, architecture, bucket protocol, ADR index
examples/ Reference adopter sites (Astro, Next)

A short tour is in ARCHITECTURE.md. The full version is docs/architecture.md.

Documentation

Contributing

See CONTRIBUTING.md and AGENTS.md. AI contributors should also read CLAUDE.md.

Security

Vulnerabilities should be reported privately. See SECURITY.md.

License

MIT.

About

The single-binary headless CMS where your content lives as plain JSON files in a folder you own.

Resources

License

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors