Over twenty years ago, I built a golf handicap tracker in Excel and Access for a group of friends – The Cygnet Golf Society, named after the pub where we met after every event. VBA macros, an Access database, and HTML reports generated directly from the data. The system ran from 2002 to 2006. Macro-heavy, moderately horrible, and everyone loved it.
About a decade later, I started a Laravel rebuild – coded in hotel rooms in Northampton while contracting at Travis Perkins. A few years after that, I picked it up again in airports and hotels on trips to the US while working for Cox Automotive. That effort stalled too; the repo sat largely untouched, and the Laravel version crept towards end-of-life.
So I’m rebuilding it again – from scratch, using Laravel 13, and using Claude Code as an active co-developer throughout. Not as a curiosity or an experiment: as a genuine engineering workflow.
This is going to be a long series. The arc:
- Archaeology – understanding what the old app actually does before touching anything
- The new stack – Laravel 13, Jetstream, Livewire 3, Stripe – decisions and why
- Vibe-coding the data layer – models, migrations, and the WHS handicap engine, built with AI assistance
- Replicating the UI – feature parity without copying legacy code
- Going further – new features the old app never had
- Shipping it – AWS deployment, go-live, and the marketing side
The app will be live long before the series finishes. That’s fine. The write-ups are about the process, not a release announcement.
Subscribe on Substack if you want posts in your inbox.