Flat-file CMS
Websites made of folders and text.
No database. No build step. No lock-in. Every page is a folder on disk, every text is a file you can read in any editor — and a panel that loads in under a hundred milliseconds sits on top of it.
Selected work
All projects →
Northlight
A public archive of night-sky photography, with 4,000 images served as pre-sized renditions.

Ferry Timetables
Seasonal timetables edited by harbour staff on their phones, published in seconds.

Atlas Notebook
A researcher's public notebook, written in Markdown files that sync from a laptop.
Why this exists
Most content systems ask you to trade ownership for convenience. You get a nice editor, and in return your writing lives in a database you will never open, behind a version you cannot pin, in a format nobody else reads.
Counterglow takes the opposite trade. The content is the filesystem:
content/
3_notes/
1_why-flat-files/
note.txt
cover.jpg
That folder is the page. Copy it, commit it to git, edit it on a train with no connection, hand it to someone who has never heard of this software — it keeps working.
The best format for your writing is the one you can still open in ten years.
What you get
- Pages as folders — the folder name sets the URL, the number prefix sets the order
- Markdown plus content tags for images, galleries, videos and links
- Automatic image renditions in the sizes each layout actually needs
- A panel that is server-rendered PHP with roughly nine kilobytes of JavaScript
- JSON for every page — append
.jsonto any URL and you have a headless CMS — see an example - Themes you can download — a whole catalogue of looks, one click to switch
- Feeds, a sitemap and search built in, no plugins required