This is the honest version of how that happened, and what AI actually changed.
For ten years the ideas kept coming and kept staying ideas. Building them was the engineers' job, not mine. Then I started messing around with these tools and realized I could actually do this. No plan, no course. Once I knew I could, I couldn't stop.
The shift wasn't speed. It was what became possible at all. A marketer doesn't flash firmware onto a microcontroller on a Tuesday night. Then one Tuesday night I did.
The flood (March 2026)
It started with three dashboards in the same week. Around March 14 I bootstrapped an F1 analysis site (now FastLap.xyz), a city liveability dashboard (livabl.xyz), and a live sky dashboard (Überdir), more or less in parallel. I expected the first to take weeks. It took days. So I started the next one before the first was done.
livabl.xyz taught me the rhythm. One page that tells you how liveable a European city is right now, from sixteen live signals. By morning it built a separate page per city. By that night I had thrown that away and rebuilt it as one dashboard with a city switcher. Cutting structure before it hardens became the most useful habit I picked up.
It also set the one rule I never broke: free data only. Every signal came from a free API. No scraping, no monthly bill. When a source got flaky I swapped it instead of paying to make it reliable.
By late March there were five of these live, and they all ran the same way: go all in for a week or two, ship it end to end, then let it settle and start the next. A sprint, then quiet.
Range (March–April 2026)
Then it got broader, and weirder.
Cappuccino was a specialty-coffee guide for fifty cities with an AI espresso dial-in tool, built in twelve days. Somewhere in there I dropped Mapbox for Leaflet and OpenStreetMap in one commit and killed Google Places. The free-tier rule was hardening into a way of designing: assume zero budget, then build something better for it.
Faithmap was a scripture explorer across seven traditions, in English and Arabic with full right-to-left support. A hundred and thirty-one commits in one week. I couldn't afford a paid model, so it runs a cascade: Gemini pre-generates explanations in batches, Groq answers live questions, and a static cache means popular verses never hit a model twice. A credit card would have let me build something lazier. And when a deploy broke at night, I didn't debug it tired. I reset to the last good commit and redeployed. Get it stable first, figure out why later. I've done that plenty of times since.
And then hardware, which I never saw coming.
Pixel Pet is a Tamagotchi. An actual virtual pet on a round 1.28-inch display and an ESP32-C3, with Düsseldorf weather and nine mini-games. A marketer, soldering, reading datasheets, fixing a crash by lowering the WiFi transmit power to 8.5 dBm because the chip was browning out.
The moment I fell for hardware was an OTA update. Supporting wireless updates meant repartitioning the chip's flash, and I pushed the new firmware fully expecting to reset the pet. It loaded its saved state and carried on, age 1,403 minutes. A thing I made kept being itself through a brain transplant I did over WiFi. I rebalanced its survival mechanics the next day, mostly because I kept letting it get sick and felt bad about it. That's the whole appeal of hardware: there's no undo. Flash the wrong build and you live with it until you fix it.
The turn: building tools to watch myself (April–May 2026)
Around the end of April I stopped only building things for other people and started building things to watch what I was doing.

First the brain. A plain folder of markdown: one note per project, one journal entry per day, a shelf of gotchas I never want to relearn. It sounds trivial. It became the most important thing I built, because every new AI session started cold, and I was paying the same tax every day, re-explaining my boards, my pin maps, my past decisions. The brain is the document I hand a fresh session so it walks in knowing what a good contractor would know on day one.
Then DevDash, now live at bain.monster, reading the brain back to me: today's journal, active projects, a daily synthesis. It started life as firmware for a small screen, and in mid-May I deleted the entire hardware layer, because the hardware idea was quietly competing with the better web idea. "Cut by default" only counts when it costs you the half you love.
Then DialDash, the most on-the-nose thing I built: a touchscreen on my desk showing, in real time, how many tokens per second I'm spending on Claude, green to red like a CPU meter. A device whose only job is to watch me use the tool I'm telling you about.
That month is where the story turns. For the first six weeks, AI was a way to go fast. By then it was becoming a thinking partner, and I was building the scaffolding for that to compound.
Consolidation and craft (May 2026)
Volume stopped being the point.
I killed the weak projects. An SEO extension called ZeroClick, scaffolded in a day, never shipped. A Fusion 360 automation server, abandoned when CAD tooling fought back. A Eurovision app whose moment passed. Their notes stay in the brain, marked abandoned. A portfolio with no failures in it is just a brochure.
ZeroClick is the one that still nags, and what killed it wasn't the idea, it was me. Once the interesting part was proven, the boring part left over couldn't hold me. That's the honest pattern across most of my abandons: I'm in it to find out whether a thing can work, not to run it once it does.
I documented patterns so I'd stop relearning them. Building an e-ink transit board for my local stop, four separate failures stacked on top of each other, and untangling that took real systems thinking. But before I could even start, I had to recover my own source code: it was lost in an abandoned branch of a different project, so I dumped the firmware off the device, ran the binary through strings, and grepped for my own code until I found it. I wrote all of it down so next time costs minutes instead of a day.
And I made things that were just delightful. Daily Bestiary generates one small 3D creature a day, its anatomy encoding my journal: legs are projects I touched, spikes are wins, antennae are decisions, dents are the moments I got stuck. The idea is to print them and put them on a shelf, then decode the day from the shape months later. I gave it one hard rule: zero AI at runtime, because the point is a permanent object, not another thing that phones an API.
Deeper, not faster (June 2026)
The work got slower on purpose, and better for it.
I built a WebXR globe you walk around in a VR headset, live earthquakes and the ISS, narrated by a deadpan AI Earth. I shipped a pet-care handover app, end to end and live. I built an autonomous ESP32 camera that keeps a narrated diary of what it sees, and turned a desk gadget with four buttons into six tiny games, one played by humming at the right pitch. And Playabl: seven deterministic puzzles a day, the same for everyone, server-scored, a small daily ritual for friends.
Early on, a project was one thing done quickly. By June it was a status dashboard that knows the difference between "I checked and it's down" and "I couldn't check." Those aren't the same, and pretending they are is how you get woken at 3am for nothing.
And about thirty others
The forty-seven is not a typo, so here is the rest of that first stretch, quickly.
A wall of Düsseldorf transit boards, because apparently I can't stop: a round one, a rectangular one, an e-ink one. A pile of e-ink experiments: F1 standings, a photo frame, a news ticker, a one-tap phone-to-screen printer. An OLED clock that answers to blueclock.local. A climate sensor with a web magazine baked into the firmware. A Mac menu-bar app written specifically so I could snap photos of my hardware and paste them straight to Claude. And a deadpan reader of Wikipedia's live edit firehose that turns editing spikes into found poems.
Some are polished and live. Some are half-finished. A few are dead. Every one taught me something, which is the only reason the dead ones are still on the list.
Keeping things alive (July–August 2026)
July and August were less about starting things than keeping them running.
watchbucko.online went live on July 26, the streaming app I built for my own TV, now on a real domain, in a browser and on a phone. Then I found the hole. A guest-login endpoint handed a full access cookie to anyone who called it, and that cookie unlocked the endpoint that returns my real provider account. Closing it meant rotating the password, the only way to kill the cookies already out there, because the cookie's value was the password. The rule I wrote down afterwards was to gate an endpoint by what it returns, not by what it's called.
Two days later Vercel suspended the Blob store this site runs on, for blowing past the free limits. The cause was mine. Every cold page render listed the store, and listing is a billed operation. The site stayed up on a baked fallback while I moved reads to a single pointer file. It was still blocked in late August.
Splita shipped 1.0 on July 3: a free menu-bar app with a per-app volume mixer, because macOS still has no per-app volume. The bug that took longest was the volume keys dying after sleep or a lock screen. macOS shuts the event tap off during a password prompt, never says so, and the tap reports itself as enabled while receiving nothing. There's nothing to check. You throw it away and build a new one.
I also have a BlackBerry Classic running as a terminal into Claude Code, because the physical keyboard is still the best keyboard on any phone. In August it learned to answer the approval prompts too.
And in late August I rebuilt this portfolio, sixteen cards to twenty-seven. My own copy broke it: a new card quotes $10.4k of Claude spend, and the splice code read $10 as a regex backreference and corrupted the page. A number about what I spend on Claude broke the page that lists what I built with it.
What AI actually changed
Here is the part I actually want to argue, now that I have the receipts.
It did not make me a 10x engineer. It removed the activation energy. The gap between "I have an idea" and "the idea exists" used to be a wall. Now it's an afternoon. When starting is free you start more, and most of what you learn comes from starting.
The free-tier constraint made the work better. Every time I refused to add a paid API, I was forced into a more honest design: run it in the browser, cache it, fall back, or cut the feature. Reaching for a paid service is usually the laziest way past a constraint you could have designed around.
The tool went through four stages with me. It started as a way to ship fast. It became a pattern finder, noticing three projects reinventing the same fallback. Then we built the brain together so the next session starts warm. And then it became a mirror: the brain got rich enough that the AI could read it and show me habits I'd missed. "Cut by default" and "decide for future-you" weren't rules I told it. It found them in me.
The most important thing I built was not a project. It was the system for working with AI. If I keep one thing from that first stretch, it's the brain. So yes, I'm still going. The bottleneck was never the building, it was the starting, and that wall is mostly gone. The distance between not knowing how to do something and having already built it is the shortest it's ever been, and I'm not going to waste that.
Written in Düsseldorf, August 2026. Still going. Built with Claude Code, and everything live is linked from vibed.website.










