Big League
Big League needed a single platform to run every aspect of community sports leagues — from fixture scheduling to live standings — without duplicate data entry or manual coordination. We designed and engineered a full-stack league management system and public website, built to last across seasons and sporting codes.

Overview
Big League Events delivers community-driven and globally recognised sporting events. Their portfolio includes golf tournaments, competitive football leagues, and dynamic athletics events, with experience hosting internationally affiliated competitions, including a World Athletics event. Before this project, league administration was manual: fixture coordination, result entry, standings updates, and player registration all happened across disconnected tools, with data duplicated between a back-office and whatever faced the public. The business needed a platform where every piece of league data entered once — and appeared everywhere it needed to, automatically. The stakes were operational: a single incorrect result, a missed fixture reminder, or a rogue data entry could undermine the credibility of an entire season
Approach
We built two integrated products inside one Next.js application: a role-controlled League Management System and a public-facing website that surfaces live data without manual re-entry.
The architecture decision that shaped everything else was choosing Supabase as the authoritative data layer, not just a convenience. Row Level Security policies enforce the five-role permission model at the database itself, not in application code that can be bypassed. A referee can only touch their assigned fixtures. A team manager cannot modify an officially entered result. These aren't UI restrictions — they're PostgreSQL constraints.
The data schema was designed for longevity. Competitions persist across seasons. The matches table is sport-agnostic; football-specific data lives in an extension table, meaning new sporting codes slot in without structural migration. Standings update via trigger the moment a result is written — not as an afterthought, not on a polling cycle. Supabase Realtime broadcasts that change to every open browser in under a second.
We separated editorial content from league data cleanly: Sanity CMS handles news, sponsors, and sporting code pages; Supabase owns everything that moves. That boundary is enforced by architecture, not convention.
Outcome
Big League now has a single source of truth for every match, player, result, and standings table across every competition it runs. Data entered by a referee in the LMS appears on the public website in real time — no exports, no copy-paste, no reconciliation. The five-role permission model means each user sees exactly what they need and nothing they shouldn't, without administrative overhead. The schema is ready to absorb Athletics, Volleyball, Netball, and every other sporting code on the roadmap without touching the core tables. The platform is built for the organisation Big League is becoming, not just the one it is today.
- Production Next.js application (LMS dashboard + public website, single codebase)
- PostgreSQL database
- Technical Design Documentation (Architecture, Data Design, Application Design)
Gallery

