Project overview
An administration platform for fitness centres that brings member records, subscription billing, check-ins and facility analytics into one place.
The challenge
Payment data and attendance lived in separate tools, so staff reconciled them manually. Expired memberships were spotted late, and owners had no clear view of how the facility was used.
The approach
We designed around the front desk: the screens staff use dozens of times a day — check-in, membership status, payment — were built first and optimised for tablets.
The architecture
- Next.js application with server-side rendering
- Supabase (PostgreSQL) with real-time subscriptions for check-ins
- Stripe for recurring subscription billing
- Role-based access for owners and staff
The product
Staff check members in, see membership status instantly and manage renewals. Owners see membership and usage analytics and a list of expired or expiring members to follow up.
Key features
- Member records and membership plans
- Recurring billing with Stripe
- Real-time check-in
- Expired membership tracking
- Facility usage analytics
UX decisions
- Large touch targets and a simplified layout for tablet use at the front desk.
- Expired and expiring memberships have their own list, so follow-up is a task, not a search.
Technology
- Next.js
- React
- Supabase
- PostgreSQL
- Stripe
- Tailwind CSS
Deployment
Cloud deployment with managed database and Stripe webhooks for billing events.
Outcome
Billing and attendance share one record per member, so reconciliation is no longer a manual task and renewals are followed up on time.








