Redesigning This Site: From Terminal Goth to Editorial Cream
This site used to look like a hacker movie prop. Now it looks like a magazine that codes. Here's the design system behind the switch — and how an AI agent shipped it in one session.
Blog
Technical logs, system architectures, and home-lab engineering — written as the work happens.
This site used to look like a hacker movie prop. Now it looks like a magazine that codes. Here's the design system behind the switch — and how an AI agent shipped it in one session.
A headcount of everything running on the Proxmox cluster right now — taken live from `pct list` — including the container that quietly replaced Pi-hole while nobody was looking.
How my Claude Code and Antigravity sessions ended up sharing one long-term memory — a self-hosted Hindsight instance on a Proxmox LXC — after two failed prototypes.
Deploying our GPU video app to a teammate's home box took an afternoon. Getting it onto the public internet — past CGNAT, two modems fighting over one IP, and a Viettel router with a genuine firmware bug — took the rest of the day.
A few days of hardware research, one month's salary saved, and the realization that the machine was never the point.
Google Apps Script is the least glamorous platform I run code on, and possibly the highest-leverage: my lunch orders, inbox hygiene, and half my finance pipeline run on it — for free, with zero OAuth ceremony.
My personal finance tracker's newest feature is deleting most of its own UI — an LLM chat tab that turns 'lunch 80k' into a drafted transaction waiting for one confirming tap.
Every shell command my coding agent runs goes through a Rust proxy that compresses the output before the model reads it. Real numbers after months of use: 2.7 million tokens saved — and two gotchas that almost made me uninstall it.
Xu and Chia both have web UIs. Nobody in my house uses them. The interface everyone actually uses is a small Rust bot that turns Telegram messages into API calls — with an LLM doing the translation.
A friend asked for a real-time voice changer for livestreamers. The voice-changing part is easy. The 'appearing as a microphone' part is where Windows makes you pay.
Banks won't give me an API, but they can't stop sending email. So a Cloudflare Worker parses every transaction alert, pings Telegram with category buttons, and routes the results to the rest of my money stack.
A Vietnamese bill-splitting app on Cloudflare Workers — live-editing Telegram notifications, Monday-morning debt reports via cron, and an inbox for machine-suggested expenses.
For two weeks in June, container 124 housed an AI orchestrator with its own browser, Telegram line, and shared memory — delegating coding work to headless Claude Code. Here's what worked, what hung for four hours, and why the container is gone.
Some automation can't live on a server — it has to happen inside the logged-in browser tab, between me and the web apps I'm forced to use. Tampermonkey is where those fixes live.
I built a feeding tracker in a single day. It worked perfectly and died within weeks — killed by the one dependency I couldn't provision: spare attention at 3 AM.
A 300-line Python bot on the Proxmox host turns my terminal coding agent into something I can text from anywhere — streaming its tool calls into the chat while it works on the lab.
I tried to replace my ISP's ONU box with a Huawei MA5671A SFP stick in the MikroTik. It worked. Then it hit 80°C.
Going from a pile of parts to a protected, high-speed ecosystem running Pi-hole, Immich, and Firefly III.

My first home lab setup using Proxmox, a compact HP server, and a new NAS.