chatz: A Self-Hosted AI Chat Where the Assistant Draws the Fucking Dashboard
Every self-hosted chat UI hands you the same thing: a wall of markdown. You ask the model for last quarter’s numbers, it writes you a table in monospace, and if …
Mostly writing code that does stuff…
Every self-hosted chat UI hands you the same thing: a wall of markdown. You ask the model for last quarter’s numbers, it writes you a table in monospace, and if …
You’ve got some app that needs to leave the building through a VPN. A scraper, a browser bot, some agent poking at sites that would rather it came from somewhere …
Here’s the code everybody writes. A request comes in, you generate an id, and something a few calls down needs to log it: func handleOrder(ctx context.Context, requestID string, o Order) …
Go 1.21 shipped log/slog and it’s good. What it doesn’t ship is any way to configure it, so every service starts with a version of this: var level slog.Level switch …
The first version streamed over SSE. Then something needed the same turn over NATS, and I found out I’d built the framing into the wrong layer. event: / data: / …
The moment that decides what kind of library you’re writing is the one where a human has to approve a tool call. Everything is lovely right up until then. The …
A page falls out of Google’s index. Now you get to find out why. Open Search Console to confirm it’s actually gone. GA4, to see if the traffic died or …
This repo is six files and does nothing. That’s the post. Two dozen of my projects ship an .agents/ directory — a skill that teaches an agent to drive the …
Say it out loud: aichteeteapee. Go on. Sound it out. Aitch-tee-tee-pee. Yeah. That’s HTTP. I named my Go HTTP library by spelling “HTTP” phonetically and published it with a straight …
Rally the troops and sharpen your digital pitchforks, for today we dive deep into the belly of the beast with persistent-sshfs, a tool not just for mounting remote filesystems via …