// collection
Server Setups
Every server I run is built the same way twice: once by hand to understand it, then again from a script so it can be rebuilt at 3am without thinking. These are those scripts, written down.
The bias throughout is towards boring, legible infrastructure. No orchestration layer you cannot debug with ssh and journalctl, no configuration management for a fleet of one, and no dependency on a control panel that will be discontinued.
10 docs · 5 sections
Content pipeline
Convert markdown to Portable Text without losing structure
The token-to-block mapping that turns an agent's markdown into real Sanity Portable Text, including tabs and callouts.
intermediate25 minGuardrails for an agent that publishes to your CMS
Five constraints that keep a coding agent from inventing clients, hallucinating links or publishing without review.
intermediate12 min
Getting started
Provision an Ubuntu Node server from scratch
From a bare Ubuntu 24.04 box to a hardened host running Node under systemd, in about twenty minutes.
beginner20 minTerminate TLS with Caddy in front of Node
Automatic HTTPS, HTTP/3 and sane security headers in a twelve-line Caddyfile — no certbot cron jobs.
beginner15 min
Operations
Quality
Rendering
ISR and cache invalidation that actually invalidates
Tag granularity, webhook payloads and how to prove a publish reached production in under ten seconds.
intermediate20 minEnforce a performance budget in CI
Fail the pull request, not the production deploy — a Lighthouse CI gate on three representative URLs.
intermediate25 minRespecting prefers-reduced-motion, with a sandbox
The two-line media query, the resting-state rule that matters more, and a live example you can toggle yourself.
beginner10 min