The challenge
ERA Health needed one product for three kinds of user. Agencies run coaching businesses. Coaches work with clients day to day. Clients follow their training programmes, track nutrition, connect wearables and share lab results. Each group needs different views and different permissions, but they all work on the same underlying data.
The scope was wide: training programmes, nutrition, lab results, wearables, a CRM and payments. Building all of that separately for iOS, Android and web would have multiplied the work and left three versions of the product drifting apart. Health and payment data also raise the bar on who can see what. A client’s lab results should reach their coach, not another agency.
- One product for agencies, coaches and clients, with the right access for each
- iOS, Android and web without three separate codebases
- Billing and payments built into the platform
- AI-assisted analysis of nutrition and lab results
What I built
I built ERAFit as a single Expo and React Native codebase that ships to iOS, Android and web. One codebase means one set of screens, one set of business rules and one release process. A feature built for coaches arrives on every platform together, and a fix ships once.
The platform is multi-tenant, structured around agencies, coaches and clients. Every piece of data belongs to a tenant and a role, and what each user can see follows from that structure: an agency sees its own coaches and clients, a coach sees their own clients, and a client sees their own programme and results. Designing this in from the start is far cheaper than retrofitting it later, especially where health data is involved.
Firebase Auth handles sign-in and Firestore holds the application data. Firestore’s real-time updates suit a coaching product, where a coach and a client are often looking at the same programme from different devices. Billing runs on Stripe and Affirm, so payments sit inside the same product as the coaching rather than in a separate system.
For AI, I used Gemini on Vertex AI to add AI-assisted nutrition and lab analysis. The aim is to make nutrition data and lab results easier to interpret inside the product, where the rest of the client’s information already lives. Wearable data and the CRM sit in the same platform too, so a coach can see activity, results and client history in one place.
Architecture and stack
- App
- Expo · React Native · iOS · Android · Web
- Backend & data
- Firebase Auth · Firestore
- Payments
- Stripe · Affirm
- AI
- Gemini · Vertex AI
- Architecture
- Multi-tenant (agency / coach / client) · B2B2C SaaS
Outcome
ERA Health has one codebase serving three platforms and one product serving three kinds of user. Agencies, coaches and clients work in the same system, each with access shaped to their role, and new features reach iOS, Android and web together.
Training programmes, nutrition, lab results, wearables, CRM and payments live in one product, and AI-assisted analysis sits inside that workflow rather than in a separate app. For the business, that means one platform to run and maintain as it grows, instead of three.
It also gives ERA Health a clean base to build on. New coaching features, new AI-assisted analysis or new payment options are added once, in one codebase, and reach every type of user on every platform in the same way.
- One Expo/React Native codebase for iOS, Android and web
- Multi-tenant access for agencies, coaches and clients
- Stripe and Affirm billing built in
- AI-assisted nutrition and lab analysis with Gemini on Vertex AI
Last updated 2026-10-03