Projects

Everything
I’ve built.

Live products, tools for my friends and a few that went nowhere. Each one has its build log.

All projects

28 projects
Project / 01 ▶ Film ● Live site
Shipped 2 entries

Fantasy Auction

Our auction league ran on an ageing third-party site, a spreadsheet and the chairman's mental arithmetic. Nobody could check a score, and nobody else could easily run a league like ours.

Read the build log
Project / 02 ▶ Film
Shipped 1 entry

Launch Video Kit

Screenshots don't sell software and screen recordings look cheap. A proper 15-second launch film normally means days of a motion designer's time.

Read the build log
Project / 03 ● Live site
TabRestrain popup showing 6 of 7 tabs open, a blocked-today counter, and a 24-hour lockout notice
Shipped 2 entries

TabRestrain

Tabs pile up, and nothing in Chrome stops them.

Read the build log
Project / 04 ▶ Film
In progress 2 entries

Fast Notes

Getting a thought from my phone into the Markdown vault I use on my laptop was the slow bit. I wanted to get it down in a second and have it land as a normal note in the right folder.

Read the build log
Project / 05 Padel Video Tracker screenshot
In progress 1 entry

Padel Video Tracker

More and more padel courts film matches from a fixed camera, but the footage just sits there as a video file.

Read the build log
Project / 06 Football Stats screenshot
Shipped 2 entries

Football Stats

Auction and draft day are full of gut calls. I knew the league inside out but had no way to say what a player was worth, what the room would pay, or how much to trust last season.

Read the build log
Project / 07 ● Live site Noodla screenshot
In progress 1 entry

Noodla

Everything's moving so fast that we skip straight to the answer, and the messy middle where the thinking actually happens gets lost. Meanwhile boards pile up, live forever and rarely lead anywhere.

Read the build log
Project / 08
Whist Scorer game setup screen on a phoneWhist Scorer bidding screen on a phone
Shipped 1 entry

Whist Scorer

Fourteen rounds of Whist on a ski trip, and the scoring admin was ruining the game.

Read the build log
Project / 09 ● Live site
Halo Hair homepage on a phone with the Chinnor hairdresser headline
Shipped 1 entry

Halo Hair

My sister was paying for a Wix subscription for her one-to-one salon, and anyone searching for a hairdresser near Thame still found everyone else first.

Read the build log
Project / 10 ● Live site
Sift for Gmail popup showing sort-by-sender controls and an active status message
Shipped 2 entries

Sift for Gmail

Gmail still can't sort or group what's on screen by sender.

Read the build log
Project / 11
Padel Ranker leaderboard with a live tournament banner, this week's movers and the player listMatch impact screen showing how a 6-4, 6-2 win moved each player's rating
Shipped 2 entries

Padel Ranker

Our padel group wanted fair matchmaking, but hand-kept rankings drift and start arguments. The social Americano nights also needed their own scoreboard, kept apart from the serious rating.

Read the build log
Project / 12 Project Roadmap screenshot
Shipped 1 entry

Project Roadmap

I run a lot of projects with a lot of agent sessions, and the plans were scattered across repos, branches and chats. I kept losing track of what was next and what was actually finished.

Read the build log
Project / 13 ● Live site
Padel availability page on mobile showing live court slots grouped by venue and time
Shipped 2 entries

Padel Availability

Finding a court meant checking three venue booking systems, then turning that into a decision in the group chat.

Read the build log
Project / 14 TLL Awards screenshot
Shipped 1 entry

TLL Awards

End-of-season awards lived in the group chat. Nominations were scattered across messages, votes were half counted and the winners never really got announced.

Read the build log
Project / 15
TLL fines dashboard on mobile showing the league pot, open fines by manager, and who still owes
Shipped 1 entry

TLL Fines Tracker

League fines lived in a spreadsheet, and the managers just wanted to see who owed what on their phones.

Read the build log
Project / 16
Wheel of Oink spinner showing fine multipliers and a Zoicam recording panel
Shipped 1 entry

Wheel of Oink

Revealing TLL fines was dull. A number appeared in a spreadsheet and that was it.

Read the build log
Project / 17 ● Live site Hawkeye screenshot
In progress 1 entry

Hawkeye

A physical tactics board is quick but static. It can't show how the rest of the team should react when one player moves.

Read the build log
Project / 18 Goodbye Site screenshot
Shipped 1 entry

Goodbye Site

A good leaving gift takes real effort, and every send-off starts from a blank page.

Read the build log
Project / 19 Quickie screenshot
Shipped 2 entries

Quickie

Capturing a quick thought means switching apps and finding the right file first.

Read the build log
Project / 20 Snippet Search screenshot
In progress 1 entry

Snippet Search

Saved tweets and LinkedIn posts disappear. There's no search and no easy way back to them six months later.

Read the build log
Project / 21 Scaffold screenshot
In progress 2 entries

Scaffold

My agent stack runs across Claude, Codex, skills and LaunchAgents, with nowhere to see what's running and what's gone stale.

Read the build log
Project / 22
Agent Stack Build notes inside
In progress 2 entries

Agent Stack

I use three coding agents, and each kept its own skills, instructions and habits. Teaching one meant re-teaching the others, and every new session started cold.

Read the build log
Project / 23 Remotion Studio screenshot
In progress 1 entry

Remotion Studio

A screenshot and a paragraph don't explain why Whist Scorer got built at a table on a ski trip.

Read the build log
Project / 24 Fog of Discovery screenshot
In progress 1 entry

Fog of Discovery

A list of places you've visited doesn't show how much of the world you've actually seen.

Read the build log
Project / 25
Reconstructed mockup of the Vegas Split expense list and settle-up view, with placeholder names
Shipped 1 entry

Vegas Split

Splitwise was too much process for one Vegas trip, but Monzo Tabs didn't work for everyone in the group.

Read the build log
Project / 26 Building This Site screenshot
In progress 3 entries

Building This Site

My projects were scattered across repos, chats and a Notion page, and I couldn't decide what my own corner of the internet should feel like.

Read the build log
Project / 27 Voice Agent screenshot
In progress 1 entry

Voice Agent

Typing to Claude is slow when you just want to ask something quickly out loud.

Read the build log
Project / 28
Strength Tracker Build notes inside
Archived 1 entry

Strength Tracker

I wanted to see if an AI agent could rebuild an iOS gym app from screenshots.

Read the build log