Engineering
From 15 to 30 Sports: What It Actually Takes to Build a Multi-Sport Platform
Adding a sport is not a config change. It is a new rule set, a new scoring model and a new set of edge cases. Here is how Zeetius doubled its coverage.
When people hear that a platform supports thirty sports, they usually assume there is a dropdown somewhere and a table of rules behind it. Add a row, get a sport. We assumed something similar when we started. It is not remotely true, and the reason why is the most interesting engineering problem in this business.
Every sport disagrees about what a score even is
Badminton is best-of-three games to 21, win by two, cap at 30. Table tennis is best-of-five or seven to 11, win by two, no cap, and the serve rotates every two points. Wrestling accumulates points continuously within periods and can end instantly on a fall. Basketball has a clock that stops. Cricket has innings. Chess boxing alternates between two entirely different scoring systems in the same bout.
There is no shared abstraction that covers all of those without becoming so vague it stops being useful. A generic "points" field that means something different in every sport is not a model — it is a text box with extra steps, and every consumer of that data has to re-implement the sport's logic to interpret it.
What we settled on: paradigms, not sports
The breakthrough was to stop modelling sports and start modelling scoring paradigms. Underneath thirty sports there turned out to be a much smaller number of genuinely different shapes:
- Set-and-rally sports — badminton, table tennis, tennis, pickleball, padel, volleyball. A match is a sequence of sets; a set is a sequence of rallies; a rally has exactly one winner. The variation is entirely in the target score, the two-point rule, the cap and the serve rotation.
- Clock-and-accumulate sports — football, basketball, handball, hockey. A match is a sequence of timed periods; points accrue in events attributed to a team and often a player; the clock itself is state that can start, stop and expire.
- Bout sports — wrestling, chess boxing. Periods, continuous scoring, and termination conditions that can fire at any moment and override everything else.
Once a sport is assigned a paradigm, adding it becomes a matter of declaring its parameters rather than writing new logic. Pickleball took days, not weeks, because it is a set-and-rally sport with an unusual serving rule and a different target score — both of which the paradigm already had slots for.
The rule set is data, the engine is code
This split is what makes thirty sports maintainable by a team that is not thirty times bigger. A fix to the two-point-margin logic lands once and is correct in six sports simultaneously. A new sport inherits every bug fix the paradigm has ever received. And when a federation changes a rule — which happens more often than outsiders expect — it is a data change, reviewed and deployed, not a code change reasoned about from scratch.
The part nobody warns you about: the edges
The paradigms handle the happy path. Roughly half the actual work is in what happens when the sport does not cooperate.
- A player retires mid-rally. Who gets the game, and what does the scoreline read in the results archive?
- An umpire corrects a point that was entered two rallies ago. Everything downstream — the live page, the win probability, the bracket — has to reconcile without a page reload.
- A walkover is recorded before the match starts. There is no score, but there is a result, and the bracket still has to advance.
- Two players in the same draw share a name. The scoring screen has to disambiguate them without the umpire squinting at a member ID.
- Connectivity dies at courtside — which, in a school gymnasium, it reliably does. Scores must queue locally and reconcile in order when the network returns.
That last one shaped more of the architecture than any rule difference. Courtside is a hostile network environment, and a scoring system that assumes connectivity is a scoring system that loses matches.
Why this matters if you are not an engineer
Because it determines what a federation can actually ask for. On a platform where each sport is bespoke, "can you support kalaripayattu?" is a quarter of roadmap. On a paradigm-based platform, the honest answer is usually a question back: what is the scoring shape, and where does it break the assumptions? If the answer is a set-and-rally sport with unusual parameters, it is weeks. If it is a genuinely new paradigm, it is longer — and we will say so.
Thirty sports is not the achievement. Being able to say yes to the thirty-first without rewriting anything is.