I'm Pieter Pel. I spend my time on declarative infrastructure, agents that play games, and the plumbing in between — and this is where I write it down.
An engineering notebook, not a publication. Most writing about systems stops at the diagram; here the story is on the surface and the config is underneath, pulled from the repositories at build time. That means a claim on a page and the code behind it can't drift apart.
The dead ends stay in: the setting that silently did nothing, the alert that never fired, the place where I picked one reasonable option over another — and why.
Everything here is grounded in a system I actually run: NixOS on a Raspberry Pi 400 under the TV and a Hetzner box that holds the services, a tailnet between them, and whatever I'm currently trying to make work. When a post says "this is how it is wired up", the wiring is in the repo it links to.
Hand-written Astro, static HTML, near-zero JavaScript, no trackers, self-hosted fonts, one accent colour. Sources are read out of the repositories during the build, so a quoted config block is never a paraphrase.
Two repositories hold all of it:
Email pelpieter@gmail.com, or find me on Codeberg. If something here is wrong, or you run something similar and got further with it, I'd like to hear about it.