Single Sign-On for the Home Lab with Authentik
Putting every home lab service behind one login with Authentik — Traefik forward-auth for apps without native SSO, OIDC for the rest, and all of it declared in Git.
Writing about home labs, Kubernetes, DevOps, and the things I build.
Putting every home lab service behind one login with Authentik — Traefik forward-auth for apps without native SSO, OIDC for the rest, and all of it declared in Git.

Replacing broken toy parts and household bits by describing them as parametric OpenSCAD code — plus the GitHub Actions pipeline, in-browser customiser, and coding-agent workflow built around it.
I replaced OpenClaw with a custom automation system that refines GitHub issues, implements features, fixes CI, investigates production bugs, and turns voice notes into shipped code — all tailored for a single developer.
A look at the infrastructure behind this blog — static site generation with Astro 5, CI/CD with GitHub Actions, PR preview deployments, and Bluesky-powered comments.
Managing 30+ home lab services with GitOps.
A browser-based tuner for standard GCEA ukulele tuning. Uses your microphone to detect pitch in real time and shows how many cents flat or sharp each string is. Click a peg or string on the ukulele graphic to lock the tuner to it. Audio never leaves your device.
Parametric 3D-printable parts written in OpenSCAD — replacement toy parts, workshop blast gates, a laptop stand, and terrain models. Each one has an interactive viewer you can spin around, and a Customize button that re-renders the part in your browser with your own dimensions.
Interactive chessboards: the Knight's Move Calculator (minimum knight moves between any two squares) and a Bishop's Agility map showing how many squares a bishop can reach from each square.
A macOS menu bar app that shows how many days have passed since your last Jira Tempo worklog submission. Color-coded status (green within your threshold, orange one day over, red beyond that), a configurable warning threshold, and hourly auto-refresh via the Tempo REST API.
The most-downloaded public-domain books on Project Gutenberg that also exist as free LibriVox audiobooks — sorted by popularity so you can find titles you actually recognize.