HostStats
liveAirbnb hosts upload their CSV exports and get occupancy, booking trends and earnings back as charts. Every file is parsed in the browser — no account, no upload, and no server that could leak a year of someone's bookings.
Things I build for myself, mostly to scratch my own itch. They share a design system, a toolchain, and a habit of writing down why each decision went the way it did.
Airbnb hosts upload their CSV exports and get occupancy, booking trends and earnings back as charts. Every file is parsed in the browser — no account, no upload, and no server that could leak a year of someone's bookings.
A versioned architecture model that lives in git and gets checked continuously against real infrastructure. When the model and reality diverge, the divergence arrives as a pull request instead of as a diagram nobody trusts.
An interactive terminal business card. Gradient ASCII intro, live GitHub stats fetched on a 1.5-second leash so it never hangs, and quick actions to copy my email, open my socials or save a vCard.
The token system every other surface here is built on. Three colour layers so no colour does two jobs — brand for identity, one interactive hue for every control, conventional hues for state. DECISIONS.md records why each value is what it is.
Not products — the setup underneath everything above. Public because the write-ups are the useful part.
One source of truth for my AI-agent setup — context, slash commands, output styles, permissions and MCP servers — symlinked into place by an installer so every machine I work on behaves the same way.
A mini PC running Proxmox, Docker and Tailscale, with Prometheus and Grafana for metrics and Ollama plus Open WebUI for local inference. Documented well enough that I could rebuild the whole thing from the repo.