Tournament registration, live scoreboards, team management and leaderboards for competitive gaming events.

Where it started
Running a tournament means registration, squad management, live scoring and standings all staying consistent while an event is in progress and players are watching. Stale or conflicting numbers during a match are immediately visible to everyone.
Tournament registration
Players and squads enter events through a self-service flow rather than an organiser spreadsheet.
Live scoreboards
Match state updates during play, which is when anyone is actually looking at it.
Leaderboards
Standings derive from match results rather than being maintained by hand.
Team management
Rosters and squad changes are handled by the teams themselves.
Organiser dashboard
One place to run an event end to end.
Authentication
Google OAuth alongside email and password, with role-based access for organisers and players.
- Tournaments, teams and matches share one source of truth, so registration, scoring and standings cannot disagree.
- An Express API over MongoDB, with standings computed from match results rather than stored as their own records that can drift.
- Frontend and API deploy independently so event-day traffic is absorbed without redeploying the application.
- Next.js with TypeScript on the client, Tailwind for styling; the API deployed separately on AWS.
- 01
Modelled tournaments, teams and matches so registration, scoring and standings read from one source of truth rather than separate views.
- 02
Built live scoreboard surfaces that update during play, with leaderboards derived from match results rather than maintained by hand.
- 03
Gave players self-service squad and roster management, removing organisers from routine team changes.
- 04
Deployed the API and frontend separately so event-day traffic spikes are absorbed without redeploying the application.

- Next.js
- TypeScript
- Express
- MongoDB
- AWS
- Tailwind
Where it landed
Organisers run events from one dashboard and players see standings that reflect the current state of play, with roster administration handled by the teams themselves.
A short conversation with an engineer, not a sales qualification call. If we're the wrong people for it, we'll say so and point you somewhere better.


