A new stack

atfedi.de runs on a small, deliberate stack. This dev note sketches it.

The shape

Two Astro projects live in one monorepo — the catalog and this blog — plus a single Cloudflare Worker that routes every request by hostname.

// the Worker, roughly
LOCALES.includes(sub) ? serveCatalog(sub, path) : routeBlog(host, path);

The catalog is a parallel mirror across languages, so each locale gets a subdomain. The blog is irregular, so it uses paths. Same tokens, two shapes.

The Worker is the only moving part in production.