Product architecture

How ClubArena works

A look at the engines that power enrolment, payments, communications and reporting across the portal.

System overview

Clients
Parent portal
Browser, mobile-first
Coach portal
Sessions & attendance
Admin dashboard
Full club control
Application
ClubArena app
TanStack Start · Edge
Rules engine
Enrol, instalments, retries
Webhook router
Stripe · Brevo · Make.com
Integrations
Airtable
20-table schema · EU
Stripe
Payments & instalments
Brevo
Templated email
Make.com
Workflow automation

Core engines

Enrolment engine
  • Class capacity & waitlist logic
  • Age-group eligibility checks
  • Multi-child basket flow
  • Sibling discount rules
Payments engine
  • Stripe payment intents
  • Pay-in-2 / Pay-in-3 instalments
  • Webhook reconciliation
  • Auto-retry on failure
Communications engine
  • Brevo transactional templates
  • Segmented campaigns
  • Open & click tracking
  • Automated reminders
Automation layer
  • Make.com scenarios
  • Typeform intake → Airtable
  • Scheduled session reminders
  • Bulk operations

Enrolment flow

1
Browse
Parent filters classes by sport, age, day.
2
Select
Pick class + child. Capacity check runs.
3
Plan
Choose pay-in-full, 2 or 3. Discounts apply.
4
Pay
Stripe Payment Intent. Webhook confirms.
5
Confirm
Enrolment created in Airtable.
6
Notify
Brevo sends welcome + calendar invite.

Payment & instalment rules

RuleTriggerAction
Pay in 1Any amountSingle charge at checkout
Pay in 2≥ £8050% at checkout, 50% in 30 days
Pay in 3≥ £150Three equal instalments, 30 days apart
Sibling discount2+ children enrolled−10% from 2nd child onwards
Early-birdEnrolled 21+ days early−5% applied automatically
Failed paymentStripe returns failedAuto-retry after 3 days, then alert admin

Data model

Members
Parents, coaches, staff
Children
Athletes & medical info
Classes
Scheduled programmes
Sessions
Single instances
Enrolments
Member ↔ class link
Payments
Transactions & invoices
Instalments
Split-pay schedules
Venues
Facilities
Coaches
Staff & assignments
Attendance
Session check-ins
Messages
Member ↔ staff threads
Campaigns
Brevo email batches
Templates
Comms designs
Audit Log
All changes tracked
Settings
Admin-configurable
Notifications
Inbox + push
Refunds
Stripe refunds
Discounts
Sibling, early-bird
Waitlists
Overflow capacity
Reports
Saved views