Fitness coaching SaaS engineered for 12× performance at 200+ paying users

Fitness coaching SaaS founder, USA

12× faster dashboards for 200+ paying coaches. Zero downtime in the migration.

28s → 0.9s

Dashboard load time

12×

Performance gain

0

Missed payments since launch

The situation

  • The founder had spent 8 months building a coaching platform on Lovable. It had real users (200 paying coaches), real revenue ($4.2K MRR), and a real product. Then growth hit.
  • Database queries that took 40ms with 10 users were taking 28 seconds with 200. Real-time session tracking, the core feature, crashed under load. The worst part: Stripe webhooks were failing silently.
  • Coaches were completing sessions but not receiving payment notifications. The founder discovered this only when a top coach threatened to leave. The options felt impossible: throw away 8 months of work and rebuild from scratch, or keep shipping on a broken foundation.

What we did

  • Properly indexed Postgres schema with connection pooling via PgBouncer
  • Supabase Realtime subscriptions replacing broken polling, 98% reduction in server load
  • Stripe webhook handler with idempotency keys, signature verification, retry queue
  • Redis caching layer for dashboard aggregations (Upstash serverless)
  • Sentry error monitoring, 47 previously-silent errors found and fixed
  • Full load testing suite, verified to 1,000 concurrent users

The result

  • The platform now serves 200+ coaches without breaking a sweat. The founder reported zero churn in the 30 days following launch, compared to 3 cancellations in the week before we started.
  • The Stripe fix recovered $1,240 in missed payment notifications from the previous month. Three months after launch, MRR had grown to $11.8K.

Timeline

How it unfolded

  1. Day 1

    Diagnosis call + codebase audit

  2. Day 1

    honest pricing proposal delivered

  3. Days 2-3

    Database migration

  4. Days 3-5

    Stripe webhook rebuild

  5. Days 5-8

    Real-time layer migration

  6. Days 8-10

    Caching + performance layer

  7. Day 11

    Production deployment + handoff

I thought we'd have to throw away 8 months of work and 200 loyal customers. They saved everything, and I didn't have to explain a single thing to my users. It just got faster.

Founder · Fitness Coaching Platform · San Francisco, CA

Stack

SupabaseSupabase RealtimeStripe WebhooksRedis (Upstash)VercelSentry

Want to be the next case study?

Book a call →