Skip to content

← All projects

liveproduction

CourtCall

An entire conference's open call — submissions, review, community voting, judging, finalists — run by one time-gated system.

The public proposes sessions for RacquetX 2027, staff review them, the community votes, a judging panel scores, finalists are announced. Six phases, each unlocking different screens and permissions, all driven by one central fact: what phase is it? Live at courtcall.events.

Open calls are usually run with forms, spreadsheets, and heroic email. CourtCall makes the phase the architecture: before_open → submissions_open → internal_review → voting_open → final_selection → finalists. Every screen and every endpoint asks the same question — what phase is it? — so the system can't show a voting button during submissions or accept an edit after the cliff. Identity is passwordless email verification; roles are database rows against verified identities, so there are no passcodes anywhere in the system. The actor is always read from the token, never from the request body.

It's live now, moving real submitters, voters, and judges toward an April 2027 event on a schedule the system itself enforces.

Stack

  • React 19
  • Azure Functions
  • Azure SQL
  • Clerk
  • Azure Static Web Apps

Running anything with phases, deadlines, and roles?

Let’s talk