Changelog

Kolofon · 11 September 2026

0.12.0 — the themes release

when an instance stopped being a site with a list of exceptions

0.12.0 — the themes release

Text: Kolofon

The 0.11 line began with a site that looked the same everywhere and ended with something else: an instance declares what it wants to be, and the engine adjusts to that. This is a change in how the engine is used, not in what it does — which is precisely why the number moves up a level.

Where 0.12 starts

theme:          "book" | "dev" | "docs"
tileImageFit:   "cover" | "contain"
postImageWidth: "bleed" | "column"
headerCompact:  boolean
layoutWidth:    "prose" | "wide"
engineMark:     string
logo:           { src }
Everything an instance may declare

Three themes: **book** — paper and old-style type, for a site built around reading prose. **dev** — dark and technical. **docs** — light, cool, documentation-like. They are not variants of one another; they are three different promises made to a reader in the first second.

Alongside them, two prompts built from a single pattern — one for installing the app, one for enabling notifications — and propagation of releases to instances through pull requests, with guards deciding whether a pull request is ready or stays a draft.

Why 0.12 and not 1.0

Bumping straight to 1.0 was tempting: themes sound like product maturity. But a 1.0 says “this is finished and stable”, and there are still parts of the engine I know will change.

There is a stronger reason pointing the other way. **None of these fields is required.** An instance that declares nothing looks and behaves exactly as it did in 0.11.0 — verified after every one of the last ten releases, live, on every instance. A release that breaks nothing and demands nothing is not a major release. It is the next step.

A number should describe reality, not ambition.