MULTI-TENANT SAASMOBILE APPPAYMENT INFRASTRUCTURE

S30 Studios Platform

Multi-tenant fitness franchise platform processing $5M+ annually across 19+ studios in Australia, New Zealand, and Singapore. Stripe Connect payment infrastructure, React Native mobile app, Next.js admin dashboard, and automated billing pipelines.

Role: Technical Lead & Full-Stack Architect

S30 Studios Logo
$5M+
ANNUAL TRANSACTIONS
100K+
BOOKINGS/YEAR
19+
STUDIO LOCATIONS
3
COUNTRIES
7K+
ACTIVE MEMBERS

The Challenge

S30 Studios is a boutique fitness franchise operating 30-minute high-intensity workout sessions across Australia, New Zealand, and Singapore. They needed a complete digital platform to replace fragmented manual processes — member management, class booking, recurring billing, franchise reporting, and mobile member experience.

The complexity: each studio operates as an independent business entity with its own Stripe account, pricing, and local regulations, but members expect a unified experience. The platform needed multi-tenant isolation while presenting a seamless single-brand interface.

Critical requirement: payment reliability. The existing system had 30% of members consistently overdue, causing significant cash flow problems across the franchise network.

System Architecture

Four interconnected systems serving members, staff, and franchise operators

📱

MEMBER APP

React Native 0.76 + Expo 52

61,000+ lines TypeScript

182 reusable components

AES-256 encrypted storage

Real-time class booking

iOS + Android

🖥️

ADMIN DASHBOARD

Next.js 14 App Router

React 18 Server Components

150+ components

Role-based access control

Real-time analytics

Franchise management

PAYMENTS SERVER

Bun runtime + Hono

11 Cloud Functions

Stripe Connect integration

Multi-currency (AUD/NZD/SGD)

Automated billing

AWS ECS Fargate

🗄️

DATA LAYER

Supabase PostgreSQL

45+ normalized tables

4,200+ lines of types

Row-Level Security

Real-time subscriptions

Studio-level isolation

Payment Infrastructure

Stripe Connect multi-tenant architecture with isolated accounts per studio

Multi-Tenant Stripe Connect

Each of the 19+ studios has its own Stripe Connected Account. Payments are processed directly to the studio's account with platform fees automatically deducted. This provides complete financial isolation while maintaining a unified member experience.

Multi-Currency Processing

Native support for AUD (Australia), NZD (New Zealand), and SGD (Singapore) with country-specific Stripe transaction fee calculations (1.7%-3.9% + flat fees). Supports both credit card and AU BECS Direct Debit payment methods.

Automated Recurring Billing

Daily batch job processes 1,000+ member billing records. 3-tier retry logic with exponential backoff for failed payments. Automated dunning email campaigns via SendGrid. $10 AUD dishonor fee assessment for repeated failures.

Payment State Machine

Comprehensive state tracking for payment intents, retry attempts, failure reasons, and recovery status. Critical errors trigger Slack webhooks for immediate ops team notification. Full audit trail for financial reconciliation.

📉

Overdue Rate: 30% → 2.45%

Achieved within 6 months through automated retry logic and dunning campaigns

Membership Lifecycle Engine

State machine managing the complete member journey across 19+ locations

Signup
Active
Suspended
Overdue
Terminating
Terminated
Transferred

Suspension & Termination

Configurable fee assessment, grace period management, automated state transitions, and email notification sequences. 20+ custom SendGrid templates for member communications.

Cross-Studio Transfers

Members can transfer between studios with automated billing updates, Stripe account reassignment, and multi-party notifications (email + push) to all stakeholders.

Churn Prevention

"Members at risk" predictive detection with automated CRM triggers to GoHighLevel, enabling proactive retention campaigns before members cancel.

Milestone Tracking

Automated marketing campaigns triggered at key lifecycle events — signup anniversaries, attendance thresholds, membership renewals — via CRM integration.

Automation & DevOps

14+ scheduled jobs orchestrating daily operations across the platform

Daily Payment Processing

Midnight UTC

1,000+ records

Membership Expirations

Daily

State transitions

Studio Metrics Aggregation

6 PM daily

KPI snapshots

Kisi Access Control Sync

Hourly

Facility access

Payout Report Generation

Weekly

PDF + email

CI/CD Pipeline

GitHub Actions → Docker build → AWS ECR push → ECS Fargate deployment with stability verification. Fly.io continuous delivery on main branch.

GitHub ActionsDockerAWS ECRECS FargateFly.io

Monitoring & Alerting

Sentry error tracking (100% transaction sampling), AWS CloudWatch logs, Slack webhooks for critical events, and structured logging throughout.

SentryCloudWatchSlackUptime Robot

Third-Party Integrations

10+ external services orchestrated into a unified platform

Stripe

Payments

ClassPass

Scheduling

GoHighLevel

CRM

SendGrid

Email

Expo

Push

Kisi

Access

Facebook

Leads

Clerk

Auth

Sentry

Errors

Supabase

Database

Mobile Application

61,000+ lines of production TypeScript serving 7,000+ active members

Real-Time Booking

Class capacity tracking, waitlist management, automatic promotion when spots open, conflict prevention across concurrent bookings.

Attendance & Gamification

Leaderboards, attendance streaks, achievement medals. QR check-in with automated ranking updates and milestone notifications.

Community Features

Social posts, threaded comments, polls with voting, media attachments. Deep-linking from push notifications to specific content.

Secure Storage Solution

Custom AES-256-CTR encryption for auth tokens exceeding iOS/Android 2KB secure storage limits. Keys in secure enclave, ciphertext in AsyncStorage.

Payment Management

Stripe React Native SDK integration. Setup Intents for card storage, payment method CRUD, subscription status tracking with real-time sync.

Multi-Location Support

Haversine distance calculation for nearby studio discovery. Studio transfers with automated Stripe account reassignment.

Technology Stack

MOBILEReact Native 0.76, Expo 52, TypeScript 5.3, Jotai, React Navigation 6.x, Clerk
DASHBOARDNext.js 14 App Router, React 18, TypeScript 5.7, Tailwind 3.4, React Query, Recharts
BACKENDBun v1, Hono 4.6, TypeScript, Zod validation, jsPDF reporting
DATABASESupabase PostgreSQL, 45+ tables, Row-Level Security, real-time webhooks
PAYMENTSStripe Connect, multi-currency (AUD/NZD/SGD), BECS Direct Debit, recurring billing
DEVOPSGitHub Actions, Docker, AWS ECR/ECS Fargate, Fly.io, Sentry, CloudWatch

Results

Business Impact

  • $5M+ annual transactions processed reliably
  • Overdue rates reduced from 30% to 2.45%
  • 100K+ bookings managed annually
  • Scaled to 19+ locations across 3 countries

Technical Delivery

  • iOS + Android apps live on stores
  • Admin dashboard serving franchise operators
  • 14+ automated jobs running daily
  • 10+ third-party integrations orchestrated

Note: S30 Studios entered administration in late 2024. The platform operated successfully throughout its deployment, processing millions in transactions and serving thousands of members across the franchise network.

Need a Multi-Tenant Platform?

From payment infrastructure to franchise management — let's architect your solution.

GET IN TOUCH