Client Work — Active

Gym Management Platform

Laravel + Mobile Client Active engagement 2024 — Present

Problem

A fitness business was running members, plans, and class schedules by hand — spreadsheets, paper sign-in sheets, manual billing. Errors were common: double-booked classes, missed payments, no-shows with no waitlist. Admin overhead was 15+ hours/week.

Solution

Member management and class scheduling on a Laravel backend, with a mobile client (React Native) so members handle check-ins and bookings themselves.

Architecture

Key Features

Member Portal (Mobile App)

Admin Dashboard (Web)

Check-In System

QR code on member app scanned at front desk (iPad kiosk) or self-scan at entrance. Offline-first: queues sync when online. Duplicate check-in prevention.

Waitlist Automation

When a spot opens, next person on waitlist gets push + SMS. 10-min window to confirm. Auto-promotes if no response.

Results

Key Technical Decisions

  1. Expo over bare React Native: Faster iteration, OTA updates, no native build pipeline for most changes
  2. Stripe Connect over custom billing: Handles PCI, retries, dunning, webhooks — saved months of dev time
  3. MySQL over PostgreSQL: Team familiarity, cheaper RDS, JSON support sufficient
  4. Expo Push over FCM/APNs directly: Unified API, handles token rotation, delivery receipts

Ongoing

Current roadmap: multi-location support, personal training booking, nutrition tracking integration, Apple Watch companion app.


Back to Case Studies