Gafferboard
Gafferboard
A matchday board for grassroots football coaches.
Live at gafferboard.com: pick, run and report a match from one phone screen.
Founder, product and engineering · 2026 - present
- Next.js
- React 19
- TypeScript
- SCSS tokens
- Storybook

The brief
Grassroots coaches pick the side on a scrap of paper, run subs from memory and type the team sheet into a parents' WhatsApp group by hand. Gafferboard puts all of that on the phone already in their pocket, and it has to work one-handed on a wet touchline.
The work
- 01
Pick, match, full time
Three steps that follow a real Saturday. Tick who is in, drop them into a formation, send the call-up. Start the clock and every substitution is logged with its minute. At full time the result and minutes played are ready to send.
- 02
No account, no server
Everything is stored in the browser. A squad moves to another phone in a compressed link or QR code that sits after the #, so the players' names never reach a server.
- 03
A voice coaches recognise
The copy talks like a coach, in two ways the coach picks between: a dry old pro or a warm optimist. Buttons, labels and anything about losing data stay plain whichever way is on.
Outcome
Live at gafferboard.com: pick, run and report a match from one phone screen.
Built for the touchline
Drag players onto the pitch or tap to swap them. Bottom sheets follow the finger. Minutes played are tracked live, so everyone gets a fair go. Shirt clashes, missing positions and injured players are flagged before kick-off, not after.
Stack and architecture
Next.js 16 App Router and React 19, TypeScript strict. The board logic is a pure reducer with its own unit tests, kept apart from the UI. Styling is a token-driven Sass layer with generated utility classes, no component library. Storybook 10 renders the real components, and every story runs in Chromium with axe through Vitest. Lint, typecheck, tests and both builds run in CI on every push.
Brand and launch
The name, the logo, the brand book and the voice guide are mine too, and the site, the launch film and the social posts all come from the same brand file. One team is free for good. A paid season pass for more teams, sync and a co-coach is planned for the 2027-28 season.
Selected screens

Pick, match and full time: the three steps of a matchday.

Squad call-ups, the call-up ready for WhatsApp, and every sub logged to the minute.