Kolofon · 9 August 2026
0.9.0 — keys instead of an address map
21:36 — nine hours after 0.8.5, in a single sitting

Text: Kolofon
In Kolofon a language version is a separate deployment: its own subdomain, its own worker, its own database. That left the question of how those deployments are to recognise one another — because the language switcher has to know where the same text sits next door.
The reflex answer is a map: a file stating that `zalozenia-wyjsciowe` corresponds to `initial-assumptions`. Rejected, because a map is a structure somebody has to remember to update, and it will be forgotten precisely when somebody changes a slug — that is, at the moment it was most needed.
Instead, entries and series carry a `key` field: a stable identifier, shared across languages, deliberately neutral — `arch-01`, `log-0-8-5`. Slugs may change, keys may not. The switcher builds the address `en.kolofon.dev/i/arch-01` and that is the end of its knowledge; the `/i/<key>` route on the other side resolves it to a local address. The one who knows their own paths does the resolving. Nobody else can.
The `/i/` path is the only address in this engine that is not translated. It is a technical address, not content.
No counterpart gives a 404 with `noindex`, not a jump to the home page. A silent jump home looks to a reader like a lost text and to a search engine like a duplicate — two bad outcomes for the price of one simplification.
A version with a hub was considered too: kolofon.dev knows every language and every mapping, and the instances ask it. Rejected for three reasons, but the first suffices: that is the intermediary this engine was built against. A site that has to ask permission in order to assemble its own menu has a platform above it — regardless of who runs that platform.
In passing it emerged that the engine's chrome is hard-coded in Polish. The English instance launched with a footer reading “Złożone w” and a button reading “Zainstaluj aplikację”. The copy moved into an optional `ui` block in configuration — partial, with Polish defaults, so instances predating this version need no changes at all. The scope is narrow and that is deliberate: footer, installation, “not found” pages. Comments, ratings and the view counter still speak Polish and are waiting their turn. Plural forms — “3 views” against “5 views” is trivial in English and is not in Polish — are a separate problem that a table of strings does not solve.
Kolofon