App
Fitness accountability with no excuses. Don't show up, lose your streak. Built for iOS and Android.
The build
Every fitness app tracks workouts. Mahi holds you to them. You post a workout photo every training day, your streak survives; you skip, it dies. No rollovers, no freeze tokens, no gentle nudges. The whole product is built around one behavioural truth: accountability works when it costs something.
Behind the simple rule is a proper social platform: a photo feed, follows and suggested follows, likes, comments, direct messages with message requests, and moderation with blocking and reporting. The streak engine knows your training days from your rest days, so a planned day off never kills a streak, and cheating is blocked at every layer of the stack.
I built Mahi for iOS and Android, product thinking and engineering together, because an accountability app lives or dies on how the pressure feels. Getting lazy? Mahi won't have it.
How it's built
The decisions that make this build hold up.
01 / 04
Training days and rest days are modelled per user, so a planned day off never breaks a streak, and skipping a session always does. One post per day is enforced three times over, in the database, in the security rules, and in the app, because an accountability product can't have loopholes.
02 / 04
Shutter to feed in one flow, with optimistic streak updates so the app feels instant and automatic cleanup if an upload dies halfway. The moment that matters, proving you showed up, never gets lost to a bad connection.
03 / 04
Feed, follows, suggested follows, likes, comments, and direct messages with message requests, plus blocking and reporting. Accountability works better with an audience, so Mahi ships one.
04 / 04
Location on a post is opt-in per photo, and coordinates are rounded to roughly 110 metres before they ever leave the phone. Your gym, not your doorstep.
One codebase for iOS and Android, OTA updates via EAS
End to end, app to API to database types
Auth, feed, streaks, messaging, storage, realtime
Fourteen focused stores in a strict layered architecture
OTP sign-up flow over Resend email
Feature flags, analytics, error monitoring
Got an idea or a problem to solve? Book a call and let's figure it out together.
Book a Discovery Call