CourtConnect PH
Open play manager & matchmaking engine
An open play manager for pickleball organizers: add players, set courts, and a matchmaking engine forms balanced 2v2 games, rotates by wait time, and streams every court live to spectators' phones.

Saturday open play
Live session
Court 1
01:35Court 2
04:43Court 3
07:51Next up · next free court
Leo & Pia vs Nico & Dan
Waiting queue
- matchmaking modes
- 3matchmaking modes
- repeat teammates (was 29%)
- 0%repeat teammates (was 29%)
- matches kept per session
- 200matches kept per session
- engine for every court type
- 1engine for every court type
01 — The brief
Organizers ran open play from a whiteboard: who's next, who's played whom, who's been waiting. Players complained about the same teammates for hours. They needed something an organizer can run from one phone at the court.
02 — What we built
ORGANIZER
- Add players, set courts, generate matches, record results
- Swap players between matches with skill-level validation
- Pause, resume and time every match
- Transfer a running session to another device by QR
MATCHMAKING
- Rotation by wait time with repeat-teammate and opponent avoidance
- Royale mode: winners play winners, a champion is crowned
- DUPR mode uses real ratings for balance
- Partner locks and exact-level court restrictions
SPECTATORS
- Read-only live view of courts, queue and leaderboard
- Pushed instantly over Supabase Realtime, no refresh
- Stable rankings: ties broken deterministically
03 — Boss fights
The hard problems, and how we beat them.
- BOSS 1
“Same teammates for hours”
At 28 players on 3 courts, players were cycling through about 10 of 27 possible teammates. Measuring recency in each player's own games fixed it: about 21 distinct teammates and 0% repeats within their last 3 games.
Cleared!
- BOSS 2
Spectators that never go stale
Every saved change syncs to the spectator room in the same step, so no organizer action can leave the audience looking at an old court.
Cleared!
- BOSS 3
Works even when the database doesn't
If storage is unreachable, the session falls back to a compressed cookie, so an organizer never loses a running open play.
Cleared!
04 — Project tags
- Industry
- Sports & RecreationCommunity & Events
- Services
- Algorithm DesignReal-Time SystemsProgressive Web AppsAutomated Testing
- Outcomes
- Fairer GamesLive Spectator ExperienceLess Manual Coordination