Case study

Growing a free workout app into a multi-tenant platform for trainers and gyms

Your Whey Fitness started as a personal workout tracker and grew into a platform for trainers and gyms, and the free personal app had to stay exactly what it was.

.NET MAUI SQLite ASP.NET Core iOS & Android

The problem

The personal app is a .NET MAUI app for iOS and Android with no ads, no account needed, and every record in SQLite on the phone. The platform added Teams, Locations, classes, waivers, and a business workspace on the web.

That meant one member's data could belong to a gym, a trainer, and the member at once. Business features needed a real online identity and a connection, yet the personal app had to stay free, offline, and private: joining a trainer's Team could not upload anyone's history, and a paid plan could not become a way to see someone's training.

Our approach

We kept the local account and the online account separate. Personal records stay in SQLite on the device. An optional Shared Account connects to a separate ASP.NET Core service that holds business and account records, each inside an organization boundary, and never the local training history.

Organizations, Teams, and Locations each carry explicit roles. Authorization checks the caller's role in the exact organization, Team, or Location a request names and denies anything it does not recognize. A Team sees training only when a member shares one workout or Session summary; raw sets, body data, and notes stay on the device. Cross-tenant tests are required for every shared endpoint.

The result

Your Whey Fitness is live on the App Store and Google Play. Personal tracking still needs no sign-up and shows no ads, and every personal training tool is free. Trainers share programs, schedules, and notices with a Team, gyms run classes, reservations, waivers, and attendance, and clients use the same free app.

Separating the two accounts is what let the business platform grow beside the free app instead of inside it. The trade-off is deliberate: Teams and Locations need a Shared Account and a connection, there is no automatic cloud sync, and a trainer sees only what a client chooses to share.

Saved workouts in History on Android in the dark theme: “Private review mobility”, imported from a Team assignment, and “Full Body Starter”, a short workout that needs no equipment.
A workout imported from a Team assignment, in a member's History.

The product

Your Whey Fitness

iOS Android Live

Offline-first workout tracker — sessions, history, stats, and local backup, rebuilt on MAUI and shipped to iOS and Android, with a web workspace for trainers and gyms: Teams, Locations, classes, and waivers.

Start a project

Have something to build?

Tell us what you're building. We reply personally with a few questions, then send a written scope before any work starts.

More case studies

Start a project