11 October 2026

New New website!

Fourteen years have passed since the “Nyt website!” post, where WordPress won the CMS contest (see it here). It went on — but a CMS with a PHP engine and a database is a lot of moving parts that can go wrong, and it needs tending even when nothing happens.

So in 2026 the site was rebuilt from the ground up, and the new foundation is flat: gitservice.dk is now a static website — a page is simply a plain HTML file that the web server hands out. No PHP, no database, no plugins — the server (Apache) simply delivers the file. It is fast because there is literally less that can fail.

All the content lives as plain text in Git on our own Forgejo server: articles as Markdown, the pages as structured text per language. Astro, a web framework that compiles everything down to static files, builds a finished dist/ folder — HTML, CSS and the little pieces of JavaScript the pages actually use. The website is what it looks like: no hidden layers, no surprises.

Publishing matters just as much as the content. The pipeline is four discrete acts, each undoable on its own, so “updating the code” is never mixed with “changing what the public sees”:

  1. Build — type- and build-check the code, then verify it in a local preview.
  2. Release — a date tag (e.g. v2026.10.12) is cut from a clean, verified main. The tag is what we publish.
  3. Deploy — the tagged commit is built, and dist/ is copied rolling, first to one stack (A), then to the other (B). At most one is down at a time, and if the copy is interrupted, that stack just keeps serving the old version.
  4. Cutover — once: both stacks join the load balancer’s pool and WordPress becomes the automatic backup; the healthy stacks then take the traffic.

The rule is short: we never deploy what we haven’t released, and we never release what we haven’t verified. If it goes sideways, the fix is simple — roll the previous tag out again, or nothing at all: WordPress stays in the pool as backup and takes over the moment a stack stops passing its health check.

WordPress has been fine. It has also grown old — and the next time this sort of situation happens, the plan will not be “one more plugin”, but a new foundation, a new pipeline and (once again) a “Nyt website!” post.