OPT(ML)

Privacy Policy

Last updated October 15, 2026

The short version: your account, fitness profile and day-to-day logs (workouts, food, weigh-ins) sync to our servers so they follow you to a new phone. A Pump Check you share after a workout (a photo from each camera, a caption and the workout summary) goes only to the friends you have accepted, never publicly, and so does your profile photo if you add one. Finding friends from your contacts is optional and engineered so raw contacts never leave your phone. This version of the app does not use your location. No ads. No third-party trackers. Your data is never sold.

Account data

When you create an account we store your name, email address, and a salted scrypt hash of your password — we cannot see the password itself. Your sign-in session uses a token stored in the iOS Keychain on your device. We also store a one-way SHA-256 hash of your email so friends who already have your address can find you.

If you use Sign in with Apple, we store the identifier Apple assigns to you for this app and the email address Apple shares (which may be Apple's private relay address). We never see your Apple ID password, and an account created this way has no OPT(ML) password.

If you forget your password, we email a six-digit code to the address on the account. The code works for 15 minutes and once, and we store only a hash of it. Setting a new password signs out every other device.

Fitness profile

Your profile — age, gender, height, weight, activity level, goal, and unit preference — is stored on your device and synced to your account so it follows you to a new phone. It is used to compute calorie and protein targets and to personalize workouts.

Workouts, food logs and body weight

Workout sessions, logged sets, food entries, saved ingredients, cardio, body-weight entries, your splits and presets, custom foods and exercises, the notes you attach to exercises, and your XP and settings are stored on your device and backed up to your account as a single document, so a new phone comes back with your history when you sign in. We do not analyse that document; it is kept so it can be handed back to you, and it is included in the nightly copies of our database described under Security. Your profile picture, if you add one, is uploaded as a small square and shown only to the friends you have accepted, beside your posts and on the leaderboard; removing it in Profile deletes it from our server. This version of the app has no coaching feature, so no workout, set or message is sent to a coach.

Food search

The app's built-in food list is searched on your device. When you are signed in, what you type in the food search is also sent to our server to search a shared food database built from the U.S. Department of Agriculture's public FoodData Central and from foods other members have offered; the query is matched and discarded, never stored. If you choose to offer one of your custom foods to everyone, its name and nutrition figures are reviewed by us before they appear in search, and they appear without your name.

Barcode scanning

Scanning a product barcode sends only the barcode number to the Open Food Facts public database, which returns the product’s nutrition information. No photo is captured, stored or uploaded — the camera reads the barcode on your device and nothing else. Camera access is used only while you are actively scanning, and you can always type a barcode in by hand or enter a food manually instead.

Pump Checks you share with friends

After a workout you can share a Pump Check: a photo from the back camera and one from the front camera taken a moment later (or a single photo from your library), a caption, and the workout's summary (the exercises, sets and weights). It is uploaded to our server and shown only to the friends you have accepted, never publicly and never to anyone you or they have blocked. Before the photo leaves your phone the app resizes it and makes it upright; our server then removes every piece of hidden metadata (location, device, capture time) and stores only the picture. Friends' reactions and comments on it are stored with it. A post stays until you delete it or your account, and it is removed from every feed at once. Posts are also included in the nightly copies of our database described under Security; the photos themselves are stored separately with our storage provider and are not in those copies. Anyone can report a post to us, and we may hide one that breaks our terms.

Finding friends (Contacts)

Finding friends from your contacts is optional and off until you turn it on. When you do, phone numbers and email addresses from your address book are normalized and scrambled into SHA-256 hashes on your device. Only those hashes are uploaded; our server compares them against members who registered the matching identifier, returns the matches, and immediately discards the uploaded hashes - they are never stored. Names, photos and raw numbers are never uploaded. If you add your own phone number to be discoverable, we store only its hash, never the number. Friendships you accept are stored on your account so they follow you to a new phone.

Location

This version of the app does not use your location. It does not ask for Location permission, and no location is read, stored or transmitted.

Apple Watch, health and motion data

This version of the app does not include an Apple Watch app and does not count reps. It does not use HealthKit, and no health or motion data is collected or sent to our servers.

What we do NOT do

No advertising, no third-party analytics SDKs in the app, no cross-app tracking, no data brokers, no selling or renting of personal data, ever. The app requests no permission until the feature that needs it is used, and every permission is optional.

Security

Connections to our servers use encryption in transit. Passwords are stored only as salted scrypt hashes, and a password reset signs out every other device. Session tokens live in the iOS Keychain, not in app files. Your training and food logs are held on your device and in your account's backup on our servers. Our database is copied once a night to a private off-site store, where it is encrypted at rest by the storage provider; copies older than 14 days are deleted. Deleting your account removes you from the live database at once and from every copy within 14 days.

Who handles your data for us

We run our own server and database; a few companies process data on our behalf, each only for the step named here and never for their own purposes. Railway hosts the server and database in the United States. Cloudflare holds the nightly copies of the database and the Pump Check photos. Resend delivers the password-reset email, so it receives your email address and the code. Apple provides Sign in with Apple. Open Food Facts receives the barcode numbers you scan. The shared food database is built from the U.S. Department of Agriculture's public data; nothing of yours is sent to the USDA.

Deleting your data

You can delete your account from inside the app, and you do not have to ask us first. The control is called Delete Account and it lives on your profile: open the Social tab, select Settings (the last section at the top of the tab) and tap Profile (the row with your photo), or tap your initials in the top right of Overview, which opens that same Profile page; Delete Account is at the bottom of it.

Deleting your account permanently removes it and every piece of server-side data held against it — your profile, the backup of your logs, your Pump Checks with their photos, reactions and comments, your friendships and the hashes used to find friends, any password-reset codes, and any food suggestions awaiting review — and it cannot be undone. Foods you offered that were already published in the shared database stay there without your name. Deleting the app removes all on-device data. You can also just sign out, which clears the device copy; your account's backup brings it back when you sign in again.

If you would rather we did it for you, email [email protected] from the address on the account.

This website

trainoptml.com uses self-hosted, first-party interaction analytics (counts and timings only, no typed text) to improve the site, and a booking form if you request a demo. No third-party trackers are used here either.

Children

OPT(ML) is not directed at children under 13, and we do not knowingly collect data from them.

Changes

If this policy changes materially we will tell you in the app before the change applies.

Questions or data requests: [email protected]

Help with the app: Support · [email protected]

The rules of the service: Terms of Use