For gyms & agencies
Onboard trainers under one roof.
Keep every trainer's client data isolated, and see roster health across your whole agency from one place.
Agency management
- Create trainer accounts directly, or generate a signup link
- Activate and deactivate trainer accounts
- View any trainer's profile and their client relationships
- Agency profile management
- Hard multi-tenant isolation — an agency cannot read another agency's trainers, clients, plans or sessions
Cross-agency isolation is enforced from the JWT context at the service boundary — not by hiding rows in a dashboard. It's covered by a dedicated security test suite.

Security
Every agency's data, structurally separate.
- JWT authentication with unique per-session IDs (JTI)
- Access-token blacklisting on logout — a revoked token stops working immediately
- Concurrent sessions supported and independently revocable
- Bcrypt password hashing
- Role-based access control across four roles: admin, agency, trainer, client
- Cross-agency data isolation enforced from JWT context at the service layer
- Input validation and error responses that do not leak data
- TLS-terminated gRPC in production
- Account deletion available to clients and trainers from within the app
Getting your agency live
- 1
Apply — an admin approves the agency.
- 2
Create trainer accounts, or send signup links.
- 3
Trainers onboard their own clients; the agency sees roster health across all of them.
