Free and open source · Apache-2.0
Write it once.
Own it forever.
Publish anywhere.
colophon is a static site generator for bloggers. You keep a folder of plain Markdown files; colophon turns it into a fast, accessible, beautifully typeset blog with feeds, search and syndication built in, and publishes it to the host of your choice.
$ colophon init blog && cd blog ✓ scaffolded a site: config, theme, authors, a hello-world post $ colophon new post "Why I still blog" $ colophon build ✓ rendered 2 posts · feeds, sitemap, search $ colophon publish --env production ✓ deployed (only changed files upload)
Markdown in. Online presence out.
No databases, no admin panel, no lock-in. A post is a Markdown file with a little frontmatter; what readers get is a beautifully typeset page, feeds, search, social cards and syndicated copies, all working without JavaScript, and all yours.
What you write
--- title: Why I still blog hero: gen:a desk by a window, morning light audio: true tags: [writing] --- The web got loud. My corner of it doesn't have to be. > [!note] > Posts are plain files. Take them > anywhere, any time.
What readers get
Why I still blog
The web got loud. My corner of it doesn't have to be.
Posts are plain files. Take them anywhere, any time.
Everything a blog should do, out of the box
colophon ships the whole publishing stack as one small binary. Each of these is built in; none of them needs a plugin, a service, or a subscription.
Markdown in
A folder of plain files, nothing more. If that folder happens to be an Obsidian vault, wikilinks, embeds and co-located images just resolve.
Typeset like print
The press theme is an editorial broadsheet: real typography, light and dark, code, maths, diagrams, callouts and pull-quotes all styled.
Feeds and the IndieWeb
RSS, Atom and JSON feeds, WebSub pings, microformats2 and webmentions: your blog is a first-class citizen of the open web.
Syndicate everywhere
POSSE built in: the canonical post lives on your domain, copies go to Bluesky and Mastodon, and a committed ledger keeps re-runs safe.
Search without a server
A static, sharded BM25 index with optional typo tolerance. Visitors search instantly; nothing phones home, nothing to host.
Posts become slide decks
Any post can project itself into a themed deck at /slides/: speaker notes, presenter mode, autocue, and it still reads with JS off.
Optional AI media
Hero images from a one-line gen: prompt and spoken readings of each post, with your own key. Cached in your repo; entirely optional.
Your readers' languages
Drop post.es.md beside post.md and colophon wires the translations together: hreflang, language chips, even per-language pronunciation for readings.
Accessible to AAA
The whole output targets WCAG 2.2 Level AAA: contrast, focus, keyboard access, and every page working before JavaScript arrives.
Your assistant writes in your voice
colophon ships agent skills for Claude Code, Codex, Gemini CLI, Cursor, Copilot and OpenCode: one command teaches your assistant to draft, edit, cross-link, tag and publish posts on your site. Personas capture your tone as a style guide backed by your actual back catalogue, so an LLM-drafted post reads like you wrote it.
Your voice, on file
# personas/default.yaml
style:
guide: |
Dry and wry; confident but
unpretentious. British spelling,
short sentences, no hype.
# plus every post you've written in
# this voice, as the exemplar corpus
# behind `colophon persona context`
$ colophon skills install ✓ claude 5 writing skills installed ✓ codex 5 writing skills installed ✓ gemini 5 writing skills installed $ # "draft a post about v2" → written in your voice, with frontmatter, tags and SEO in place
Publish anywhere
Publishers are pure mechanism; environments decide what deploys
where. Deploys are incremental (only changed files upload) and production sits behind
an --allow-publish latch, so nothing ships by accident.
Page hosts
Cloudflare Pages, GitHub Pages, GitLab and Codeberg Pages. The build lands straight on the host's CDN, one command from your terminal or CI.
Object storage
Amazon S3, Cloudflare R2, Tigris, MinIO, Backblaze, Wasabi: any S3-compatible bucket becomes a website, or just carries your heavy assets.
Or your own pipeline
A git remote, rsync, or any command you care to run. If you can script it, colophon can publish with it.