Tennis matchmaker
A web app that draws the teams for my grandpa's tennis tournaments.
- When
- 2026
- Role
- Solo
- Next JS
- UI design
- Vercel

My grandpa plays tennis with his friends. To make things more interesting, they organize their tournaments on a « mix the players as much as possible » basis, so that you rarely end up with the same partner twice.
For years, one club member did the draw with a hat: the names of the available players on small papers, and teams formed by pulling them out. When he stepped down, my grandpa asked me if I had something that would mix the players better than this hat system.
I looked around and found nothing. The tools you find online do the classic formats, knockout or round robin, not this « mix everybody » one. So I took the occasion to build it myself, and to learn Claude Code and the BMAD method along the way.
I had interesting constraints to work with:
- The UI has to be really clear. My grandpa and his friends do not spend their days in front of an app, so anything ambiguous could be a big issue.
- The results have to leave the screen. I spent a good amount of time on a PDF export, so that my grandpa can print the draw and bring it to the club.
For the architecture, the idea was to mimic Notion: everything lives in one database, and the screens are only different representations of this same unified data model. Adding another way to look at the same data then costs almost nothing.
It is a Next.js app, deployed on Vercel.
My next step is to add a login and account system based on Supabase. Having to maintain accounts and the security that comes with them always scared me a bit, but this API seems to take most of that weight away. For now, everything is serialized and saved to the browser localStorage.
The current deployment is available here.
