Terence Hinrichsenterence ~ $

Project$ cat projects/run-club-online.md

run-club.online

A multi-tenant members app for running clubs: renewals and payments, time-trial results and PBs, events and a kit shop. Helderberg Harriers runs on it.

Status
Live
Year
2025
Role
Product, design and development
Stack
Next.js · TypeScript · Supabase · PayFast · Vercel

Small clubs run on spreadsheets, WhatsApp groups and one overworked volunteer. run-club.online gives them a proper system without a proper budget. Each club gets its own branded app on its own subdomain, and members and the committee sign in to the same place.

For members

A phone-first app that installs like a native one: a membership card, renewals paid online with PayFast or by EFT, time-trial results with personal bests and club records, the events calendar, club announcements and a kit shop. Sign-in is by magic link, so there are no passwords to forget.

For the committee

A desktop admin area in the same app, split by job: membership, results, shop and events each have their own role, so the results captain does not need access to the bank reconciliation. Time trials can be captured at the finish with a live stopwatch, typed in afterwards or imported from CSV, and PBs update automatically. Payments settle through PayFast’s notification webhook, which checks signature, merchant and amount before anything is marked paid, and expired memberships lapse on a nightly job.

How it is built

Next.js on Vercel and Supabase, with one database for every club. Nothing club-specific lives in the code: name, colours, crest and plan come from the club’s row, resolved from the hostname, and Postgres row-level security keeps each club’s data separate. Payment credentials are per club, and the platform never holds a club’s money.

Helderberg Harriers

Helderberg Harriers, my own club, is the first tenant. Its members use it at helderberg-harriers.run-club.online, and it is on Google Play as the Helderberg Harriers app, a Trusted Web Activity over the same site rather than a separate codebase.

← All projects