the robot and the boy in the cap kneeling on the floor around one large central machine core, deliberately choosing which of several smaller plug-in modules to connect to it — a few modules attached and softly glowing, several others set aside in a neat pile beside them; careful, thoughtful, deciding rather than installing everything

Self-hosting the thing I paid not to think about

A managed service is a deal: you pay to not think about what’s underneath. I self-hosted Supabase on a 16GB box over a weekend, with AI help, and made every component earn its place. What I bought back was understanding.

the robot holding up a phone showing a message bubble, an arrow curving across to the boy in the cap who holds his own phone showing the same bubble as it arrives

Every Robot in My House Can Text Me Now

My house is full of automation that never told me anything — until I gave it one push bus. The first thing I taught it to do was warn me before Claude Code cuts out mid-task.

Audiobookshelf library: the same tale with stock narrator and the cloned dad voice

🎙️ Cloning My Own Voice for My Kid's Audiobooks

Zero-shot voice cloning with XTTS-v2 on a CPU-only k3s node: 26 seconds of phone audio in, a cloned-voice audiobook out — and an honest verdict from the bedtime jury. Every manual step, including the ones that went wrong.

the boy in the cap holding up a small processor chip toward the robot, who reaches out to it with an open hand; behind them a plain desktop computer and blank monitor sit on a desk

🤖 Local LLM Inference on Kubernetes, No GPU Required

A CPU-only self-hosted LLM stack running on k3s: llama.cpp as the inference server, Open WebUI as the chat interface, deployed as a single Git push.