I Built an App to Fix Our Club's Social Tennis. Then It Became Something Else.
It started with a WhatsApp message. A messy Excel spreadsheet. A combinatorial problem nobody had solved. Here's how a weekend hack became Rallio.

It started, as most things do, with a WhatsApp message.
"Anyone fancy social tennis Thursday 7pm? Courts 3 and 4. First 8 to reply."
I'm a member at a tennis club in Surrey — big club, multi-sport. We have tennis, squash, padel, badminton, table tennis. A decent bar. A noticeboard that looks like a crime scene, plastered with box league sheets and tournament draws and, at the very bottom in eight-point font, an email address for enquiries.
I love the place. But the experience of actually using it — knowing what was on, who was playing, whether there was space — was, to put it charitably, a mess.
The booking system ran on software old enough to have Y2K concerns. It crashed. It was slow. Courts, lights, payments, bar tabs, membership fees — all threaded together into one creaking machine. But that's a story as old as institutions. Every club has one. What nobody had built anything for was the players.
The problem was the social sessions.
Fourteen People, Six Courts, No Idea
Post-Covid, our social tennis sessions had grown enormously popular. We were running up to five a week — mixed doubles across six courts, twenty or more players a session, all different abilities, people who hadn't met each other, people who'd played together for ten years, juniors and veterans on the same day.
Someone — one person, out of love for the club — was organising all of it. They'd graduated from WhatsApp to a secret Excel spreadsheet with some scripting bolted on. It still broke. And when they went on holiday, the whole thing either fell to whoever they could rope in at short notice, or they were dialling it in from their sun lounger.
They'd collect names. They'd try to remember who'd played with whom. They knew everyone's ability — roughly — but translating that knowledge into balanced pairings across six courts, in your head, on the fly, is a different matter entirely. They'd screenshot the pairings and post them to the group. Half the time people didn't see the message. Sometimes the same pair ended up together three rounds in a row. Sometimes a strong player got stuck with two complete beginners all afternoon.
It wasn't anyone's fault. The problem is structurally hard. Balanced mixed doubles rotation across many courts — accounting for ability, avoiding repeated pairs, rotating partners and opponents fairly — is genuinely a combinatorial challenge. Your brain can't hold it at scale.
People would try ChatGPT. Paste in a list of names, describe the constraints, ask it to generate pairings. It got confused, repeated pairs, occasionally had the same player on two courts at once. Not quite what was needed.
So I built a solution.
The Algorithm Problem
I'm a designer and developer by trade. I run a small studio. I've built products before. I know how to scope a problem, write a spec, and ship something without it taking over my life.
I started with the core problem: given N players of varying ability, assign them to courts for multiple rounds of doubles, minimising repeated pairings, keeping matches roughly even, and flagging when something looks wrong.
The first version was a weekend project. A small web tool. You entered the players, hit generate, and got court assignments. It flagged same-gender pairs (when that mattered for the session format), tracked who'd played with whom, and gave the organiser a view they could sanity-check before confirming.
The response at the club was immediate. The organiser loved it. Players noticed the games felt fairer. A few people asked what the tool was.
That was the moment I realised this wasn't just a club hack. It was a product.
What the App Became
Slowly, a few little features crept in. A queueing system for drop-ins and cancellations. A rating layer so ability could be tracked over time and fed back into future pairings. Session history. A ladder for ongoing singles and doubles ranking between members. Then competition brackets — knockout draws, round robins. The mixer format, which had started the whole thing, became one of four proper session types.
Then I started thinking about distribution. The organiser is the bottleneck in any club session. They're one person, and if they stop, the session stops. What if the tool made that role easier — so easy that more people could do it, and so good that players engaged directly?
From the start it was sport-agnostic — tennis, padel, pickleball, squash, badminton, table tennis. If you're rotating players across courts, the sport is almost beside the point. The philosophy stayed the same throughout: this is for players and organisers, not for back-office administration. There are a hundred software products built for club management — court booking, membership payments, facility scheduling. Institutions take years to change them, and they probably should; that infrastructure is genuinely hard. Rallio doesn't go there. It doesn't try to be a booking system. It doesn't handle court lighting or bar tabs. It does one thing: it helps you run a great session and build a community around it.
The Part I Didn't Expect
What I underestimated was the player side of the equation.
But I also noticed something I hadn't anticipated. Nobody complained about playing someone better or worse than them. What they hated was playing the same person twice — as an opponent and then as their doubles partner. Ability wasn't the pain point. Repetition was.
So the design shifted. Managers simply share a magic link — one tap to join the club, no approval queue, no cold signup form. They click it, they see their pairings and results, and they're in. If they want to do more — claim a profile, track their rating, receive notifications — they can. But they don't have to.
The value has to be visible before the ask is made. Results and pairings that live only in the link, not in a screenshot. A recap that the organiser can share to WhatsApp in two taps. The first experience has to be "oh, that's useful" — not "oh, another form to fill in."
Where It Is Now
The app is called Rallio. It's live on iOS, Android, and web. We're in free beta while I build toward proper pricing tiers for club admins.
I'm still a member at my club in Surrey. The social sessions still run. The organiser still does a remarkable job. But they use the tool now, and so do a handful of other clubs that found their way to it.
The noticeboard is still a mess. But a smaller one. I plan to tackle the rest.
But the games are fairer. And sometimes that's enough to keep the rally going.