MagnyBad
StoresThe club app for Magny-les-Hameaux badminton: weekly training slots you sign up to, club events, a training video library, and realtime discussions.
- Role
- Developer — mobile app and API
- Period
- 2024 — today
- Status
- Stores
The problem
The club ran on messaging threads: who is playing on Monday, which team travels to Versailles, when the AGM is. Nothing had a single source of truth, and a player joining mid-season had no way to catch up.
The decision
A managed backend, and realtime only where it earns it
Signups, events and the video library are club rules, not screen state, so they live in Postgres on Supabase rather than in the app. Auth and row-level access come from the same place, which turns “this member may see this” into a database rule instead of a condition scattered across screens — the difference that decides whether a club app stays correct once a second maintainer touches it.
Discussions run on Supabase realtime; everything else is fetched. Being a second late is a bug in a conversation and merely an inconvenience everywhere else, so realtime stays scoped to that one surface — which is what keeps the rest of the app cheap to reason about. It is also the project where the constraints came from someone other than me: a real club, with a season calendar that does not move.
The chain
Architecture
Shipped
- Weekly training slots, filtered by day, one-tap signup, and the list of who is coming
- A training video library, filtered by theme and by level
- Club events with search — internal tournament, AGM, end-of-season meal
- Interclub fixtures with opt-in per match
- Member directory, realtime discussions and followed players
- Published on both stores, still maintained — v1.0.42, July 2026

Screens



Next project
Drapoz →