Skip to content
Alinkka

Work · Let's Go Gym · 2024

Let's Go Gym — Fitness management SaaS

Multi-tenant SaaS for gym management, delivered in 3 months for daily operational use.

Laravel Next.js Supabase PWA MTN Mobile Money Stripe
Let's Go Gym — Fitness management SaaS

Context

Let's Go Gym runs several gyms in Benin. Before our involvement, the team managed memberships, payments and schedules through shared Excel files — time-consuming, error-prone (forgotten members, double charges) and impossible to scale beyond two locations.

The technical challenge

Three structural constraints:

  1. Multi-tenant: each gym has its own members, pricing, and coaches, but the same team manages all locations from a single centralized back-office.
  2. MTN Mobile Money on top of card payments — that's 75% of volume in Benin. Not an optional channel: the primary one.
  3. Installable PWA on the member side: check-in at the door, class schedule, payment receipts — without requiring a native store app (Apple/Google review cycles are too slow for product velocity).

What we shipped

  • Multi-tenant back-office in Laravel + Filament: memberships, billing, class scheduling, coach management, attendance, equipment, communications.
  • PWA member app in Next.js + Supabase Auth: check-in, schedule, receipts, profile. Installable on Android and iOS without going through the stores.
  • Payments: Stripe (international cards) + direct MTN MoMo API integration with proper async callback handling.
  • Reporting: real-time dashboard for management (revenue per location, attendance rate, monthly churn).

Results

  • 2,000+ active members 6 months in.
  • 300+ recurring paying subscribers (monthly).
  • 12 modules shipped in 3 calendar months.
  • Uptime > 99.5% since go-live.

What we learned

Having Stripe and Mobile Money coexist in the same payment architecture is less complicated than people fear — provided you lay down a domain model where the transaction is channel-agnostic from the start. That's what allowed Let's Go Gym to accept both a visiting French tourist's card and a local member's MoMo without a single front-end code path specific to either.

Alinkka · résultats chiffrés

Paying subscribers
300+
Active members
2,000+
Modules shipped
12

Want a project like yours? Let's talk.

30 minutes to scope your need and qualify feasibility.

Start a conversation