Skip to content
◀ All case studies
STAGE 1-3Live · Maintained

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.

CourtConnect PH logo
courtconnectph.com · Open play

Saturday open play

Live session

Room K7Q2XD18 watching

Court 1

01:35
Mia & Jun
Ana & Rex

Court 2

04:43
Kai & Liz
Ben & Joy

Court 3

07:51
Tom & Ria
Gab & Ivy

Next up · next free court

Leo & Pia vs Nico & Dan

Waiting queue

1. Ely2. Sam3. Kat4. Max
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

WebInstallable PWA

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.

  1. 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!

  2. 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!

  3. 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