Row-level isolation, proven
Every row in the database carries the gym it belongs to and the database itself refuses to serve it to anyone else. An automated suite runs those checks on every release.
Every table is walled by row-level security and a test suite proves gym A cannot read gym B. Card details never touch our servers. Daily backups with seven-day point-in-time recovery. And you can export members, attendance, payments and plans as CSV from Settings, any time.
Every row in the database carries the gym it belongs to and the database itself refuses to serve it to anyone else. An automated suite runs those checks on every release.
Card and bank details go straight to Stripe from the member's phone. Gym OS only ever holds a token.
Daily backups, seven-day point-in-time recovery, error tracking, alerting, rate limiting and security headers on every response. Boring in the best way.
Members, attendance, payments and plans as CSV from Settings. Your Stripe account is yours. There is no lock-in and nothing to ask us for.
Who you are decides which gym's rows you can see, at the database, not in the app.
The isolation suite has to pass before code ships.
And any point in the last seven days can be restored.
What sits between your members' data and everyone else.
Owner, manager, coach and member roles, each with only the screens they need.
The database refuses to serve one gym's rows to another gym's user.
Payment details never pass through Gym OS servers.
Daily backups, seven-day recovery, errors and attacks watched around the clock.
Not another gym, not by accident, and the tests prove it.
Because the cards are not here. They are with Stripe.
Your CSVs, your Stripe account, your payment history. The door is open on purpose.
In a managed Postgres database with daily backups, with Stripe holding all payment details.
You export it from Settings first, then we delete your gym's rows on request.
We are bringing gyms on a few at a time so each one gets set up properly. Leave your details and we will let you know when your spot is ready.