Hi HN, I'm an indie dev who built this to settle a long-running argument with my teenage son about who lifts more at the gym.
I wanted a workout tracker to kept our data side-by-side on a leaderboard, and let us swap training plans without texting screenshots back and forth.
Nothing I tried did all three without a subscription wall, so I wrote my own.
Most of the app is free, it covers the full workout experience and progress tracking with 80+ exercises.
The one-time purchase unlocks multiple plans, custom movements, and the social/sharing features, mainly to pay for the infra.
The mobile app is React Native via Expo with Expo Router, NativeWind for styling, Zustand for state (every store is user-scoped via an AsyncStorage key prefix so account switches do a clean rehydrate, good way to have several using using the same app), Reanimated for animations, and react-i18next across six locales.
The core workout loop is fully offline, and a Firebase layer sits on top for optional cross-device sync and the social features.
Backend is a small workspace of Firebase Cloud Functions v2 that handle cross-user fan-out (friend requests, shared plans, shared movements) with rate limiting and anti-spam in Firestore triggers.
Published a few weeks ago, I can proudly but surprisingly see the daily usage increasing.
This is my first mobile app since a while (was doing some 10+y ago), keen for any feedback since it gave me the excitement of building some more.
Android only for now, iOS to be published soon.
Most of the app is free, it covers the full workout experience and progress tracking with 80+ exercises. The one-time purchase unlocks multiple plans, custom movements, and the social/sharing features, mainly to pay for the infra.
The mobile app is React Native via Expo with Expo Router, NativeWind for styling, Zustand for state (every store is user-scoped via an AsyncStorage key prefix so account switches do a clean rehydrate, good way to have several using using the same app), Reanimated for animations, and react-i18next across six locales. The core workout loop is fully offline, and a Firebase layer sits on top for optional cross-device sync and the social features. Backend is a small workspace of Firebase Cloud Functions v2 that handle cross-user fan-out (friend requests, shared plans, shared movements) with rate limiting and anti-spam in Firestore triggers.
Published a few weeks ago, I can proudly but surprisingly see the daily usage increasing.
This is my first mobile app since a while (was doing some 10+y ago), keen for any feedback since it gave me the excitement of building some more.
Android only for now, iOS to be published soon.