Changelog

Kolofon · 4 August 2026

0.2.0 — the engine stops importing content

11:15 – 11:35, twenty minutes to turn one arrow around

0.2.0 — the engine stops importing content

Text: Kolofon

11:15. Until this release the engine imported content. Directly, by path, with a directory name inside it. You could tell yourself it was “temporary” and that “there is only one instance anyway” — and I told myself exactly that for eleven hours.

The trouble with a dependency like that is not that it is ugly. It is that it points one way, and the wrong way. As long as the engine knows where the content lives, a second instance is not a matter of configuration but a matter of forking. And a fork is not an instance, it is a twin that starts drifting on day one.

The inversion consisted of the engine no longer reaching for content and instead being handed it. The boundary became narrow and countable: configuration, authors, redirects, entries. Nothing else crosses.

11:24 — a commit marked WIP, because that was the honest label. Lazy loading of push notification keys and the OG card generator went in alongside. Previously they loaded at startup, which meant an instance with no notifications configured paid for them on every request. A script also arrived to check that nothing had crept back to the old habit — because these things creep back.

11:35 — 0.2.1. The instance now attaches itself through an alias called `kolofon-instance` instead of registering at runtime. Runtime registration had one virtue: flexibility. And one flaw: module load order decided whether it worked at all. That is not a property, that is a lottery.

After this release nothing on the site changed. Not one pixel. It was the most important change in the entire project.