Tinkerings*.
Things I built. A working list. Sometimes years late, sometimes still warm.
Chute.
A Kubernetes operator that turns one CRD into a public URL (Cloudflare Tunnel, DNS, Access OTP, and a cloudflared pod), all from a single kubectl apply. Built because I wanted to share an AI experiment on my laptop in five minutes.

Drift Sector.
Browser-first multiplayer trading and territorial-control game on Cloudflare Workers, a spiritual successor to old space trading games. In private development.

Frigate's camera wall on channel 1.
Getting Frigate's birdseye camera grid to play as a Live TV channel on a Roku through Jellyfin. Five stacked failures, and a root cause in a composite that renders slower than the 10 fps it claims.

mcp-home.
Go MCP server that lets Claude reach into my smart home and media stack (Home Assistant, Sonarr, Radarr, and Frigate) over a Cloudflare Tunnel.

nabkey.com.
This site. Static blog and tinkerings index on Cloudflare Workers, with MDX content, a global ⌘K palette, and a hand-built editorial design system.

Nauracast.
A two-host podcast generator on Cloudflare. A seven-stage Workflow turns a list of sources into a twelve-minute briefing for about a quarter an episode, cheap enough for an audience of one.

Pool thermometer via RTL-SDR.
A floating pool thermometer with no API, sniffed out of the air at 915 MHz with an RTL-SDR and a one-line patch to rtl_433. My sensor turned out to be the first unit to disprove a guessed entry in the upstream decoder's checksum table.

trivai.
Jeopardy at home with an AI host. The TV shows the board, every phone is a buzzer and a microphone, and Trev reads the clues, judges spoken answers and comments between them.

Garage door controller.
ESP32 + ESPHome controlling two garage doors with relay pulses, reed switches reporting true state, and a Bluetooth proxy thrown in for free. Talks directly to Home Assistant.

Sprinkler and garage controller.
A 2018-era home sprinkler controller, a Raspberry Pi orchestrated by Jenkins, because Jenkins was already running on the home Xen cluster. Long since retired.

Multi-zone audiobook player.
An audiobook playback appliance with one zone per room (independent MPD instances, a Go HTTP service, AngularJS UI, espeak greetings on boot). Built for a family member.

Wedding stream.
Real-time Twitter wall for a friend's wedding (crawler → message queue → Node.js displays) with admin filter mode and starred users (bride, groom, party).
