React Native Mobile App iOS & Android

FitStack — Cross-Platform Fitness Tracking App Rebuilt in React Native

A ground-up rebuild of a failing Ionic fitness app into a native-feeling React Native and Expo product — with offline workout logging, real-time Firebase sync, push notification coaching, and a Stripe-powered premium subscription tier.

FitStack fitness tracking app workout view

4.7★

App Store rating

14 wks

Design to App Store

8,400+

Downloads in first month

Day-7 retention vs. prior app

The challenge

FitStack had launched 14 months earlier as an Ionic app built by a freelancer. The concept was solid — a strength training tracker that let gym-goers log sets and reps, track progressive overload week-over-week, and follow structured programs. But the execution felt like a mobile-wrapped website. Navigation lagged. Animations stuttered. Offline mode — critical for basements and commercial gyms with poor signal — would silently drop data. Users were reviewing it one star and describing it as "a spreadsheet with a worse interface."

Day-3 churn was running at 67%. The founder had 12,000 downloads but only 680 weekly active users. Push notifications — their main retention lever — weren't working reliably on Android. They were paying $800/month for Firebase and getting no value from it because the Ionic layer wasn't using real-time listeners. The existing codebase was too tangled to patch — a rebuild was the only viable path, and it had to be done before they burnt through their remaining runway.

What we built

We rebuilt FitStack from scratch in React Native with Expo in 14 weeks, targeting both iOS and Android from a single codebase. We kept feature parity with the old app in the first 10 weeks, then used the final 4 weeks to ship the premium subscription tier and progress visualisation that the original app had never managed to launch. The architecture was designed around offline-first — every workout is written to local SQLite storage first, then synced to Firebase when connectivity returns.

  • React Native with Expo — single codebase for iOS and Android, with EAS Build for over-the-air updates without App Store resubmission
  • Offline-first workout logging using WatermelonDB (SQLite) — full session recording works with no signal, syncs to Firebase Firestore on reconnect
  • Push notifications via Expo Notifications with FCM and APNs — workout reminders, streak alerts, and program completion nudges with 94% delivery rate on Android
  • Victory Native charts for progress visualisation — volume load curves, personal record history, and 1RM trend lines per exercise
  • Stripe in-app purchases for FitStack Pro — monthly and annual subscription tiers with a 14-day free trial, managing entitlements via RevenueCat

The results

FitStack launched the rebuilt app on both stores in week 14. In the first month, it accumulated 8,400 downloads — driven entirely by organic App Store featuring and word of mouth from the existing community. Day-7 retention went from 11% to 38%, a 3x improvement. The App Store rating climbed from 2.1 to 4.7 stars within 6 weeks as the new user cohort replaced older negative reviews.

The Stripe Pro subscription launched in month two, converting 9.4% of active users to paying subscribers in the first 30 days. The founder put it plainly: "Our old app was costing us users every week. The rebuild turned our product into something people actually tell their gym friends about."