Unstack is modular. Enable exactly what your studio needs — nothing more, nothing less.
Multi-tenant architecture. Each studio gets its own subdomain, branding, and configuration. Everything is isolated — one studio never sees another's data.
Magic link login and Google OAuth for parents. Role-based access for admins and instructors. No passwords to forget, no shared logins.
Stripe Connect integration. Each studio connects their own Stripe account and collects payments directly — Unstack charges a small platform fee per transaction.
Transactional email delivery via Resend. Booking confirmations, invitations, reminders — all styled with your studio's branding.
SMS delivery via Plivo. Shared platform number with claim-code routing means studios get SMS without managing their own number.
Immutable audit trail of all admin actions. Who did what, when, and to which record. Filterable, paginated, and exportable.
Revenue charts, attendance tracking, client growth curves, and CSV exports — with a date range filter so you can see any period, not just the last 6 months.
Per-studio configuration hub. Branding, notification defaults, embed tokens, module enablement, and team management — all in one place.
6-step setup wizard that gets a studio from signup to first booking. Studio info → DPA acceptance → preset selection → Stripe Connect → branding → invite your team.
The core booking engine. Session slots, capacity management, eligibility checking, and the booking status lifecycle from hold through to attended.
Private session slots with instructor assignment, tier-based pricing, and self-service or admin-managed availability windows.
Group class templates with recurring schedules and live capacity. Family swims, assessments, reformer classes, HIIT — any format where multiple clients share a slot.
Sequential waitlist with automatic promotion. Parents are notified when a spot opens and given a 4-hour window to claim it before the next person is offered.
When a slot is cancelled, it enters a timed pool. All eligible families are notified simultaneously — first to claim wins. Via SMS reply (YES-CODE) or parent portal.
Set recurring and one-off studio closures. Sessions on those dates are automatically skipped and parents notified — no manual cancellation required.
Attendance tracking for instructors. Mark attended or no-show with one tap from the instructor portal. Feeds directly into analytics.
Self-service or admin-managed availability windows. In self-service mode, instructors submit their windows and admins approve before they feed the scheduling engine.
Instructor profiles with bios, specialisms, photo, and tier assignment. Invite instructors via email — they accept and gain access to their instructor portal.
One parent login, multiple children. Family accounts group profiles under a single billing relationship — parents book for specific children, not just themselves.
Extended profiles for each child. Date of birth, medical notes, allergies, swimming ability, skill level, and current award scheme stage.
Configurable instructor tiers that control per-session pricing, SEN permissions, and medical record access. Define your own tier names and rank ordering.
Structured special educational needs and medical flag catalogue — per-studio configurable. Not a text field: specific, categorised flags that instructors can actually act on.
Child profile review queue for admin. When a new child profile is submitted, it sits in the queue until approved. Admins can suggest a tier assignment.
Internal staff notes on child profiles. Versioned history, visible in the instructor pre-session card. Parents don't see staff notes.
Configurable skill progressions for your discipline. Swimming levels, water safety stages, strength categories — define your own progression ladder.
Build multi-stage award programmes that mirror your curriculum. Define stages, criteria, and badges. Instructors mark stages complete; parents see progress in real time.
Per-child progress tracking across award schemes. Timeline view shows parents every stage completed, who signed it off, and when.
Post-session notes from instructors. Progress updates, achievements, areas to improve. Parents can see non-private notes from their portal.
PDF certificate generation when a child completes an award stage. Studio-branded, stored securely in R2, and available as a signed download from the parent portal.
Invoice generation and tracking. Payment history, receipt emails via Resend, and access to the Stripe Customer Portal for clients to manage their own payment methods.
Pre-purchased session bundles. Buy 5, 10, or 20 sessions at a discounted rate. Balance is tracked and deducted automatically on each booking.
Flat monthly subscriptions via Stripe Bacs. Designed for swim schools on a 50-week year — spread evenly across 12 equal monthly payments.
Session price is determined by the assigned instructor tier at the time of booking. Different instructors charge different rates automatically.
Configurable discount for the second and subsequent children in the same family. Set the rate per studio — no manual discount codes needed.
Flat-rate pricing for home-educated children that overrides the standard tier pricing. Flag a child as home-educated in their profile to apply the studio rate.
Configurable notification preferences per notification type. Parents control what they receive and how — email and SMS toggles per category.
Send messages to groups of parents via email and SMS simultaneously. Filter recipients by attendance, class, skill level, or send to everyone.
A read-only, auto-updating timetable embeddable on any studio website with a single script tag. Clicking a slot redirects to the Unstack booking page.
AI-powered chat assistant that answers parent questions and walks them through booking. Embeddable on any website. Escalates to WhatsApp when it can't help.
Customisable forms shown during booking or registration. 6 field types, drag-to-reorder builder, and a response viewer with CSV export for admin.
Export bookings, revenue, and student rosters in CSV format. Excel-compatible — no special software required.
Not sure which modules you need?
Start with a preset — it pre-configures everything for your type of studio.