the robot and the boy in the cap kneeling on the floor around one large central machine core, deliberately choosing which of several smaller plug-in modules to connect to it — a few modules attached and softly glowing, several others set aside in a neat pile beside them; careful, thoughtful, deciding rather than installing everything

Self-hosting the thing I paid not to think about

A managed service is a deal: you pay to not think about what’s underneath. I self-hosted Supabase on a 16GB box over a weekend, with AI help, and made every component earn its place. What I bought back was understanding.

claude-compass — working notes

Notes on my rule-based guard for Claude Code: the hook contract, the Python/Go pair, the shared test set, and the holes I found along the way.

Kimchi's terminal UI on first launch in the brew-buddy repo — the opening prompt reads 'hi kimchi welcome to my homelab. My name is Janos and i'd like to try you'

I gave Kimchi my kombucha app

Same builder model, same task, two harness modes — a real feature on my homelab, and why the architecture, not a smarter model, decided every outcome that mattered.

the robot and the boy in the cap lying on a grassy hill at night, gazing up amazed at a sky absolutely crowded with tiny satellites, dots and small orbiting gadgets — so many they almost fill the sky; wonder, not fear

Nothing Ever Deorbits

55 years of dev tools as orbital debris. If you feel behind: nobody can keep up with this. It’s not you. It’s the sky.

the robot holding up a page of boxes and arrows while the boy in the cap, hand on his chin and frowning, marks a correction on it with a red pen — the only colour in the drawing

The Coding Skill That Actually Degrades Isn't Syntax — It's Judgment

Everyone worries that coding with an LLM makes them forget how to code. That’s the wrong thing to worry about. The skill that really degrades is judgment — knowing when to trust the model and when to take the keyboard back.

the boy in the cap leaning over a network diagram spread on a table with a magnifying glass, while the robot beside him points at one box on the map — the two of them auditing the layout together

🧱 An Agent Audited My Homelab — and the Useful Part Was Telling It 'No'

I gave a second AI read access to the Git repos that define my k3s homelab. The findings were fine — the work was validating each: which to accept, which to recalibrate, and which the scanner was confidently wrong about.

two robots standing on either side of an easel holding a blank page layout — the familiar round-headed robot gesturing at the design, and a square-headed robot with a flat unimpressed expression holding a clipboard

I Let Two AIs Argue Over My Homepage — To See If They Actually Think Differently

A single model playing scrum master is just one mind doing all the voices. So I gave two models from two different labs the same deliberately vague design brief, let them collide, and watched what each one refused to give up. I wasn’t trying to prove the merge was better — I was trying to prove they were different.

the robot standing at an easel drawing a picture of itself on the canvas, holding a blank scroll in its other hand, while the boy in the cap watches holding a paintbrush

🎨 I Gave My Blog a Mascot and Never Drew a Line

Thirty posts, no covers, and I can’t draw. The fix wasn’t a better prompt — it was picking the right model tier and letting the model read the whole post.

the boy in the cap with a small bird perched on his shoulder, holding up a card showing a single anonymous person icon

The Third Bird Reads People, Not Pages — and Never Hits Send

Two birds already read the web for me. The third one reads people — it mines my GitHub graph for humans worth a first message and writes the opening line, but it never sends. The word that changed the whole design was ‘who’, and the trap it had to dodge is that finding people like me is exactly the easy thing embeddings do best.

the robot pointing at an open cardboard box while the boy in the cap sweeps small cubes marked with an X toward it, a recycling arrow looping in the air above them

📝 Dev Notes

Running notes on things I’ve hit, fixed, or found worth remembering.