Case study / Sports & Fitness
How we built a sports club OS in under 4 weeks
A multi-tenant club management platform now powering 500+ athletes across South Africa.

01 — The Brief
A real problem.
Athleet came to us with a problem most growing sports clubs share but rarely articulate well: their administrative spine was held together with WhatsApp groups, a scattering of Google Sheets, and the occasional PDF emailed at 11pm. Coaches were re-typing rosters. Parents were asking the same questions every week. Membership numbers had quietly tripled in eighteen months and the cracks were now structural. They had tried two off-the-shelf club platforms before us — both built for North-American leagues with rigid season models that did not match how a South African club actually runs. The brief was deceptively simple: build the system we should have started with three years ago, and make it boring enough that admins trust it on day one.
“Our admins were running a club out of WhatsApp screenshots and a 14-tab spreadsheet. We needed a backbone, not another app.”
02 — The Insight
What we saw.
The breakthrough was reframing what a club actually is. Most platforms in this space model a club as a workflow engine — registrations, payments, attendance — and bolt content on as an afterthought. We argued the opposite. A club is fundamentally a content management system: athletes, teams, sessions, parents, sponsors are all entities you publish, edit, and relate. Workflow is just the verb that ties them together. Once we accepted that framing, the data model collapsed from forty-seven tables in their previous vendor's schema to fourteen. Subdomains per club became cheap. Onboarding a new club went from a week of configuration to a ten-step wizard a coach can finish on a Sunday afternoon.
03 — The Build
What we shipped.
We built Athleet as a multi-tenant Next.js 16 application backed by Firebase, with a per-club subdomain model and a single shared codebase. Firestore handles the operational data with composite indexes per tenant; Cloud Functions handle the heavier work — invoice generation, attendance roll-ups, automated WhatsApp reminders. Every club gets its own brand profile (logo, colors, voice) which the marketing pages and parent-facing emails consume directly, so the platform never feels white-labelled in the cheap sense. The 10-step onboarding wizard was the unlock: it asks the right questions in the right order, defaults intelligently from the club's sport and size, and produces a usable platform at the end. We also shipped a mobile companion via Capacitor so coaches can mark attendance pitch-side without unlocking a laptop. The whole thing went live for the first three pilot clubs in under four weeks from kickoff.


04 — The Outcome
What changed.

“Pip and the team rebuilt our entire platform in 6 weeks. We shipped what our last vendor took 9 months to half-finish — and our coaches actually use it.”
05 — Deliverables
What we shipped.
- 01Multi-tenant Next.js 16 platform with per-club subdomains
- 02Firestore data layer with tenant-scoped composite indexes
- 0310-step onboarding wizard for new clubs
- 04Coach mobile app via Capacitor for pitch-side attendance
- 05Automated parent comms via Resend + WhatsApp Cloud API
- 06Per-club brand profile + theming system
- 07Admin analytics dashboard with retention and revenue metrics
06 — Stack
The tools.
Want a case study like this one — with your name on it?
Start a projectarrow_forward