Live headcount against real capacity — not a guess at the front desk.
Members
Add a Member
Membership Tiers
Each tier unlocks a different set of classes — checked automatically at booking, not enforced at the door.
Studio Dashboard
Busiest Times Today
Fill rate by class, in order of the day — where to staff up before it's a problem.
Classes Near Capacity
Recent Activity
My Membership
Book a Class
My Upcoming Classes
Why This App
This is a simplified version of a tool built for a gym or fitness studio — group classes with real headcount limits, membership tiers that actually gate access, and expired memberships that get caught before they become an awkward front-desk conversation.
Booking a class checks three things automatically: is there an open spot, does the member's tier actually include this class, and is their membership current. Try booking a Basic member into an Elite-only class — blocked. Try booking someone whose membership lapsed — blocked. Try booking a full class — blocked.
Tap "Member View" to see exactly what a member sees logging in themselves — their tier, their upcoming classes, and the ability to book a new one within what their membership actually allows.
A member can cancel their own booking right there too, not just book one. Cancel a class and the spot genuinely opens back up, checked the exact same way a brand new booking is — no separate system that could quietly disagree with what staff sees.
On Today's Classes, each class shows its actual named roster — check someone in when they arrive, or mark a no-show if they don't. That's the difference between "booked" and "actually showed up," which is exactly what the No-Shows Today number on the Dashboard tracks.
Overbooking a class past capacity
Every booking checks real headcount against the room's actual limit — not a guess at the front desk.
Members booking classes their tier doesn't cover
Tier access is enforced automatically at booking — not discovered awkwardly when they show up.
Lapsed memberships slipping through
An expired membership blocks new bookings immediately, not after a month of missed billing.