Security

Boring, on purpose.

We are deliberately understated about security claims. This page is a non-technical summary of how we protect your account and your data, written for the humans who use FitTrainr — not auditors.

Encrypted in transit

All connections to FitTrainr use TLS 1.2 or higher. The plain-HTTP version of the site redirects to HTTPS at the load balancer.

Encrypted at rest

Everything we store — the database, file uploads, backups — sits on storage that's encrypted with managed keys. Disk-level encryption is the default, not an opt-in.

Payments handled by Stripe

Card numbers never touch our servers. Stripe is PCI-DSS Level 1 certified and handles all card processing on our behalf.

Two-factor authentication

Available to every user. Required for administrators. Recommended for everyone managing a coaching roster.

No standing database passwords

Our application connects to the database using short-lived IAM credentials, not a password sitting in an environment variable. Credentials rotate automatically.

Dependency hygiene

Automated weekly scans catch vulnerable packages before they reach production. Critical advisories trigger an out-of-band patch.

Audit logs

Sensitive actions — admin changes, MFA enrollment, account deletion — are written to an append-only audit log we retain for compliance.

Backups

Database backups run nightly, tested monthly, retained for 30 days. We've successfully restored from backup in dry-runs; we know it works.

What we don't claim

We do not currently hold SOC 2, ISO 27001, or HIPAA certifications. We will say so explicitly the day that changes. We do not store Protected Health Information (PHI), and we are not a HIPAA-covered entity. Body metrics, nutrition logs, and workout data are wellness data, not medical records — see our wellness disclaimer.

Reporting a vulnerability

If you've found a security issue, please email support@fittrainr.com with reproduction steps. We commit to acknowledging within two business days. Please don't share details publicly until we've had a chance to ship a fix.