a whole club, in one codebase.
A fan-owned, volunteer-run club needed a new website, a club app and a way for volunteers to run it all. We built all three on one shared backend, in English and Welsh.



mock dataApp and portal screens use mock data from a fictional demo business: no real customers, staff or figures.
- products on one backend
- 3
- languages throughout: english + cymraeg
- 2
- website pages
- 30
- first commit to store-ready build
- 9 days
an ageing site and a club run by volunteers.
The old WordPress site had a broken next-match widget and contact details that didn't match. Fans had no app, and volunteers had no easy way to post a score from the touchline.
01An ageing WordPress site with a broken next-match widget.
A new website, every page in English and Welsh, with the next match always right.
02No app for supporters.
A club app with a live match centre, fixtures, the table, news and a fan wall. It works offline at the ground.
03Posting a score meant a laptop and a login.
A matchday command centre: one tap for a goal, card or sub, made for one hand on the touchline. Taps queue up when the signal drops.
04Fans heard about goals on social media last.
Kick-off, goal, half-time and full-time pushes, sent in each fan's own language.
05Every update had to be made in three places.
One backend: post once in the portal and it's on the website and in the app at the same moment.
06Writing up the match after a long day.
AI drafts the match report from the game's own events, in English and Welsh, ready for a volunteer to check.
07Open fan chat needs keeping clean.
The fan wall blocks bad language in both languages and hides a post after three reports.
running on
its own.
The jobs that no longer need a person to remember them. Every box is real: what triggers it, the rules and AI it runs through, where someone steps in, and what comes out.
one tap on the touchline updates the app, the website and every fan's phone, in their own language.
the AI writes the first draft from what actually happened. a volunteer checks it and presses publish.
the wall looks after itself. volunteers only step in for the edge cases.
a closer look.




mock dataApp and portal screens use mock data from a fictional demo business: no real customers, staff or figures.
built with Next.js, React Native / Expo, Supabase, Realtime + push, Claude AI, Turborepo, Vercel
next ./wrk
Reubens Coffee