One system. Four roles. Zero leakage. ✱
Four roles, one source of truth
A person can hold more than one role. What they see is decided twice — once by row-level security in the database, and again by an explicit permission map in the application.
Trainee
Their program, their progress, their plan and their coach — on the phone.
Coach
Builds programs and nutrition, reviews check-ins, runs their own roster.
Front desk
Scheduling, classes, payments and attendance. Never medical data.
Admin
The whole gym — revenue, reports, staff, settings and the audit log.
| Capability | Trainee | Coach | Front desk | Admin |
|---|---|---|---|---|
| See own training program | Trainee: included | Coach: included | Front desk: not included | Admin: included |
| See own progress and history | Trainee: included | Coach: included | Front desk: not included | Admin: included |
| Build and assign programs | Trainee: not included | Coach: included | Front desk: not included | Admin: included |
| View medical notes | Trainee: included | Coach: included | Front desk: not included | Admin: included |
| Book and cancel sessions | Trainee: included | Coach: included | Front desk: included | Admin: included |
| Manage classes and attendance | Trainee: not included | Coach: included | Front desk: included | Admin: included |
| Take and record payments | Trainee: not included | Coach: not included | Front desk: included | Admin: included |
| See revenue and financials | Trainee: not included | Coach: not included | Front desk: not included | Admin: included |
| Read the audit log | Trainee: not included | Coach: not included | Front desk: not included | Admin: included |
| Change gym settings and branding | Trainee: not included | Coach: not included | Front desk: not included | Admin: included |
See own training program
- TraineeTrainee: included
- CoachCoach: included
- Front deskFront desk: not included
- AdminAdmin: included
See own progress and history
- TraineeTrainee: included
- CoachCoach: included
- Front deskFront desk: not included
- AdminAdmin: included
Build and assign programs
- TraineeTrainee: not included
- CoachCoach: included
- Front deskFront desk: not included
- AdminAdmin: included
View medical notes
- TraineeTrainee: included
- CoachCoach: included
- Front deskFront desk: not included
- AdminAdmin: included
Book and cancel sessions
- TraineeTrainee: included
- CoachCoach: included
- Front deskFront desk: included
- AdminAdmin: included
Manage classes and attendance
- TraineeTrainee: not included
- CoachCoach: included
- Front deskFront desk: included
- AdminAdmin: included
Take and record payments
- TraineeTrainee: not included
- CoachCoach: not included
- Front deskFront desk: included
- AdminAdmin: included
See revenue and financials
- TraineeTrainee: not included
- CoachCoach: not included
- Front deskFront desk: not included
- AdminAdmin: included
Read the audit log
- TraineeTrainee: not included
- CoachCoach: not included
- Front deskFront desk: not included
- AdminAdmin: included
Change gym settings and branding
- TraineeTrainee: not included
- CoachCoach: not included
- Front deskFront desk: not included
- AdminAdmin: included
Two surfaces, one data model
Staff work on the web and on mobile; trainees live in the app. Both read and write the same records, so nothing has to be synced, reconciled or exported between them.
Web console
The full staff surface — client cards, program and nutrition builders, scheduling, billing, reports and settings. Hebrew-first, right-to-left, and English when you need it.
Native apps
iOS and Android for trainees and for staff. Guided workouts, food logging with barcode and photo scan, chat, classes and push — built natively, not wrapped.
Your data cannot reach another gym
Every tenant is isolated at the database level. Not by a filter in application code that a bug could skip — by row-level security that makes the database itself refuse to return another gym's rows, verified by a dedicated test suite on every single change.
- Isolation enforced in Postgres, below the application
- A dedicated isolation suite runs against every change
- Per-tenant branding: your logo, colour and name
- Built for chains and franchises with many sites
Health data, handled properly
This product holds medical notes, progress photos and payment history. The compliance surface is a feature, not a checkbox.
Row-level security
Tenant isolation enforced by the database on every table.
Append-only audit log
Every sensitive action recorded, editable by nobody.
Versioned consent
Captured at onboarding, withdrawable without destroying history.
Export and erasure
Trainee-raised data export and anonymise-in-place erasure.
It talks to the rest of your stack
Apple Health & Google Fit
Steps, sleep and resting heart rate, synced automatically.
Calendar
Sessions and classes where your coaches already look.
WhatsApp & SMS
Reach trainees on the channel they actually read.
Transactional notifications and broadcasts that land.
Online payments
Card checkout alongside cash, Bit and bank transfer.
Multi-site
Many gyms under one group, cleanly separated.