The problem
Clubs schedule on spreadsheets, communicate on WhatsApp and collect subs in cash. Existing tools are generic team apps rather than football-native, and none of them let a parent see every child across every club they attend.
What it does
A multi-tenant platform where a club, coaching business or solo coach schedules recurring sessions, takes a register, collects money into their own bank account, messages parents, and keeps a development record on each child. Parents get a separate portal spanning multiple children across multiple clubs.
How it's built
Fee algebra that survives an immutable subscription price
Payments take a configurable fee via destination charges, so the club stays merchant of record. The subtlety is recurring: the platform takes a percentage and the price is immutable, so "the parent absorbs a 5% fee" cannot be a 5% application fee. Solving for the club netting exactly the base gives a derived charge and fee percentage, commented with the algebra.
Booking holds that expire at read time
A priced booking takes a 30-minute hold. Rather than relying on a cleanup job, occupancy is a single predicate — booked, or a hold whose expiry is still in the future — reused everywhere capacity is counted. An abandoned checkout therefore self-heals without anything needing to run.
Two-gate, fail-closed authorisation for children’s photos
Every child image is gated on an organisation-level setting plus explicit per-membership consent, with a separate scope check for marketing use, then an access predicate of club staff or a linked guardian. Each check keys off the membership rather than the child, so consent given to one club never leaks to another.
FA format rules derived, not stored
Playing format is derived from age group plus season start year rather than stored, because a rule change shifts several age groups down one size from a given season — so the same squad is 7v7 in one season and 5v5 in the next. Storing it would have quietly gone wrong at the season boundary.
Stack
- Next.js
- Stripe
- PostHog
- Sentry
Built, shipped and maintained by me. Try CADEM Sports, or see the rest of the work.
