Two shipped, three shelved
Draft — written from notes, not yet reviewed. Rewrite this in your own voice, then delete draft: true from the frontmatter.
This is the first of these. The idea is one letter a year, written slowly, about what actually happened rather than what I meant to happen. If it reads like a shareholder letter to an audience of one, that's roughly the intent — I want a record I can be embarrassed by later.
2025 was the year the side work stopped being a hobby. Two products went into production and are still running. Three others were shut down. That ratio is the honest headline, and I want to start by defending the second number as hard as the first.
What shipped
ReachKit went live. It answers a question small businesses ask constantly and get bad answers to: why can't customers find me? It pulls the search data, works out what's actually broken, and hands back a ranked list rather than a dashboard. The ranking is the product. Anyone can show you forty problems; the work is knowing which one to do on Monday.
Nudgi went live. It reads your calendar and inbox and gives you a briefing before each meeting, so you walk in knowing who you're talking to and what happened last time. It was born out of a personal irritation, which is usually the right place for a solo product to start — I could tell within a week whether it was working, because I was the one walking into the meetings.
Both are still up. Both still have my phone number attached to them. That is a different commitment from launching something, and it's the part I underrated going in.
What I stopped
Vector Knowledge was the year's real lesson. The technology worked — email in, embeddings, a search interface that genuinely answered questions about a Gmail account. I archived it anyway. The reason wasn't the build, it was that I never found a person whose problem was shaped like the product. I had a capability and went looking for a use, which is the wrong direction, and I knew it was the wrong direction for months before I acted on it.
PrepMate and Eclectic were shorter stories. Eclectic I built in an afternoon to find out how far a prompt-to-app tool could take me. The answer was: further than I expected, and not far enough to run. That was a cheap and useful thing to learn, and archiving it was always the plan.
I've started treating the archive as part of the portfolio rather than a graveyard hidden below the fold. Three shutdowns in a year is not a bad year. Three shutdowns I dragged out for six months each would have been.
What changed in how I work
The mechanical change was moving spec-first. Every repo now opens with a blueprint, a build plan and a design ledger, and the code comes after all three. I resisted this for a long time because writing specs felt like the part of the job I'd escaped by working alone.
It turned out to be the opposite. Working alone is exactly the condition where nobody else is holding the shape of the system, so if it isn't written down it only exists while I'm concentrating. The specs aren't overhead for a team I don't have. They're the team I don't have.
The second-order effect is that most implementation now runs through agents against those specs, and the quality of the output tracks the quality of the spec almost linearly. When I get a bad result, the fault is nearly always upstream in something I left ambiguous. That's a much better failure mode than the one I had before, because it's fixable at the source.
What I got wrong
I shipped too many things. Looking at the year end to end, the products that worked got there because I was using them daily and could feel where they were wrong. The ones I archived were mostly things I found interesting rather than things I needed. Interest is a good reason to start something and a bad reason to keep it.
I was also slow to kill Vector Knowledge, and slow for a reason worth naming: it was the most technically satisfying thing I built all year. Sunk cost doesn't feel like sunk cost when it's dressed as craft.
The day job, briefly
Alongside this I lead Experience Agent at SAP — an AI product in the go-to-market portfolio — deciding what gets built, in what order, and why.
The two halves of the year fed each other more than I expected. Owning a product inside a large organisation is mostly the work of making a case: turning what customers struggle with into something engineering can execute against. Building alone is the opposite discipline, where the gap between a decision and its consequence is about four hours. Doing both means neither skill gets to hide.
Into 2026
Three things I'm holding myself to:
Fewer starts. The constraint isn't ideas, it's the number of things I can credibly keep running. Two live products is close to that number.
Sharper kills. Archiving is healthy; taking six months to archive is not. I want the decision made at the point the evidence arrives.
Write it down as it happens. This letter was assembled after the fact from commit history and memory, and the reconstruction was harder than it should have been. Next year's should mostly already be written by the time I sit down to write it.
See you in twelve months.