Workbench
The toolshed. Engineering essays with the codebase clipped to the back. Builds, opinions, post-mortems.
6 entries
Five thousand mockups and no way to search them
Building an MCP server on the Mockuuups Studio API, and the four undocumented behaviours that shaped every design decision in it.
- mcp
- fastmcp
- python
- cloudflare
- docker
Moving data you can't afford to lose
The boring disciplines behind a data migration you can actually prove: irreplaceability order, checksum gates, offsite-restore tests, uid preservation, and verifying by function.
- zfs
- rsync
- restic
- nfs
The Quiet Press: a newspaper that turns itself off
A Raspberry Pi, an e-paper panel, and a battery that lasts because the device spends almost all its life switched off. The architecture, the design, and what the schedule taught me.
- raspberry-pi
- fastapi
- playwright
- home-assistant
- mcp
- e-paper
Draining a server with the lights on
Retiring a flaky, load-bearing box in an afternoon: DNS, public ingress, home automations and all, with nobody noticing.
- docker-swarm
- dns
- cloudflare-tunnel
- observability
Blueprint: Migrating a 70-Device Zigbee Network to a New Coordinator Stack — Without Re-Pairing
A field-tested runbook for moving Zigbee2MQTT from an ember (EFR32) coordinator to a zstack (CC2652P) one in place — including the undocumented channel_mask trap, a socket-contention root cause, and what an AI pair-operator actually contributed. With three postscripts: the beta-firmware auto-update ambush, the week-long hunt that ended in a wrong-board-variant firmware and a Wi-Fi AP squatting on the mesh's spectrum, and a 72-hour soak that finally turned the claim into proof.
- zigbee2mqtt
- zigbee-herdsman
- zstack
- home-assistant
- mqtt
An EPUB, via email.
why mcp-readwise has fourteen tools, but the one that actually mattered ships markdown to your Reader Library by SMTP — and what that detour says about API design.
- python
- fastmcp
- pandoc
- aiosmtplib
- resend
- docker