Full Routine
Same look, same waggle, same breath. Boring on purpose.
Kept four times.
EddyIn daily family use since April
Kids share a link from anywhere. A model running locally at home checks it against their age, and it comes back in a feed that ends. There’s no chat, no endless scroll, and nothing about what they watch leaves the house.
I designed and built all of it: the product, the app, the guard, and the rubric and evals that keep it honest.
Gemma 4 · Ollama · Node · SQLite · iOS
New from a maker you follow.
Something new, close to what you’ve been watching.
That’s Today.
Three decisions
All 20 decisions13 Apr 2026
The kids’ viewing history stays on the home server, and no outside service learns who watched what.
The kids’ viewing history stays inside the home server. A line from outside services stops at its wall: they never learn who watched what.
2 Oct 2026
A 51% precision score was measuring two things at once, unsafe and not for us. Block now splits in two, and the guard is judged only on Unsafe.
The guard scored 51% clear-yes precision against a 95% target, because a parent’s Block meant two things. Block now splits into Unsafe, the only answer the guard is measured on, and Not for us, the family’s taste.
22 May 2026
People you follow and discovery compete in one scored, capped pool. Discovery keeps reserved slots even on busy days, and a thin day stays short rather than padded.
Each day’s slate holds at most 15: four back-catalogue and two from your interests are kept every day, and people you follow fill the rest. A busy day reaches the cap; a thin day stays short rather than padded.
One ThoughtIn testing on TestFlight
You carry one thought round the course: keep your routine, take the boring target, let the last shot go. When it comes up, you press a button in your pocket or tap your watch. The phone stays in the bag, nothing adds up while you play, and afterwards the round is read back to you in one sentence.
I designed and built all of it: the phone and watch apps, the rules that write the sentence, and the research checks behind every thought.
SwiftUI · watchOS · GRDB · Flic · OpenStreetMap · Cloudflare Workers
Three decisions
All 23 decisions15 Jun 2026
I parked the brass penny for a certified off-the-shelf Flic, because about 80% of the cost and complexity came from sealing a radio and battery inside metal.
The brass penny, a radio and battery sealed inside solid metal and about 80% of the cost, is parked. An off-the-shelf Flic button, certified and shipping, is the hardware.
12 Jun 2026
No notifications, streaks, badges or feed. A thought is meant to graduate, so the app is built to be needed less; it waits to be opened after the round.
A phone lock screen with nothing on it: no notifications, no streaks or badges, no dashboard or feed. The app waits to be opened after the round.
18 Sept 2026
True findings were being stretched, so each claim is now graded by how close its study is to golf, by two readers who never see each other.
Each research claim goes to two readers, one neutral and one sceptical, who never see each other. The more cautious grade stands; a disagreement is never averaged and comes to me.
A cloud hosting product. I designed and built its first interface for customers, then ran it as product manager. How backups came to it →
A tool for web designers to build responsive forms. The interface worked; I never found a way to charge for it.
A learning environment built for my MSc, and an experiment with 107 students on whether game mechanics raise participation. It stayed in use after the research ended. Dissertation (PDF) →