June 20262
- 8 min read The Cookie Banner Was Always Optional I wanted visitor stats without a consent banner. The trick wasn't a clever cookie — it was deleting the JavaScript: Caddy logs the requests, masks the IP at the edge, and GoAccess turns the log into a dashboard. No cookies, no third party, no banner. →
- 15 min read You Don't Have Dotfiles. You Have Four Problems. Managing a machine isn't one job — it's four, with conflicting requirements. Here's the split I landed on: a non-mutating shell runtime, an idempotent provisioner, public dotfiles, and a private secretfiles overlay encrypted with SOPS and age. →
April 20262
- 7 min read I Don't Write API Clients Anymore Your backend already describes itself in OpenAPI. Orval turns that description into a typed client, React Query hooks, Zod validators, and mock servers — and it doesn't care whether the spec came from Laravel, Django, or Node. →
- 8 min read WordPress Has a New Package Registry, and I'm Relieved WPackagist got acquired, so Roots shipped WP Packages in four days. A short history of why anyone runs WordPress through Composer in the first place — and why the registry under it suddenly mattered. →