Privacy Policy

FirstGym is a hands-free voice coach for first-time gym-goers, available for iPhone with Apple Watch and for Android. We collect only what is needed to run your workouts and keep your program in sync between your devices. This policy covers both apps; parts that apply to one platform only are marked iOS or Android. Last updated: 30 September 2026.

The app is developed and published by Aleksandr Zhbanov, individual developer ("we"). Contact for data questions: support@zhbanov.com.

Account

You can set a display name in the app. The account lives in our Postgres database hosted by Supabase in the EU (Frankfurt).

Workout data

To run the program, FirstGym stores:

This data is bound to your user id and used only to run the app.

Apple Health (iOS, Apple Watch)

If you grant access, the Apple Watch app starts a workout session and reads your heart rate and active energy to show them live during the workout. This data stays on your devices: it is not uploaded and not written back to Apple Health. The Android app does not read health or fitness data from Health Connect or from sensors.

Camera and photos (machine scanner, form check)

The machine scanner lets you take or pick a photo of gym equipment to identify it and suggest exercises. The photo is sent through our server to Anthropic for recognition (see below) and is not stored. When the online scanner is not available, the photo is classified on the device instead and is not sent anywhere: with Apple Vision on iOS and with Google ML Kit image labeling on Android.

Form check uses the camera to film a set. The recording is analysed on your device and deleted right after; it is never uploaded (see above).

The camera is used only while the scanner or form check is open, and on Android the camera permission is asked only when you first open one of them.

AI features (Anthropic)

Two features send data through our server (firstgym-worker.firstgym.workers.dev, Cloudflare) to Anthropic's Claude API:

We do not store these photos or texts. Anthropic processes them to answer and does not use API data to train its models.

Voice coach

Most coaching lines are pre-recorded and play from the app. When a line needs a custom word (for example an exercise name or a number), its text is sent through our server to ElevenLabs to synthesize the audio. Only the text of the line is sent: it does not include your name, email or account id. The resulting audio is cached on your device. Android: if the server cannot be reached, the phone's built-in text-to-speech voice renders the line on the device.

Notifications

These are local notifications created on your device. We do not use push notification services.

Exercise videos

Demo videos stream from Bunny.net through short-lived signed links requested by the app with your session. The Android app may download upcoming videos in advance on Wi-Fi and keep them in its cache.

Usage analytics

Both apps record first-party usage events (for example: app opened, sign-in step, workout started or finished) in our own database, to see where people get stuck. Each event carries the event name, a few short values, the app version, the time and a random per-install id; Android events are also marked platform=android. Before sign-in only a small set of onboarding events is accepted and it carries only the per-install id; after sign-in events are linked to your account. The per-install id is not tied to your device or your Apple or Google account. There are no third-party analytics or advertising SDKs.

Subscriptions

FirstGym Pro is sold through the App Store (iOS) or Google Play Billing (Android). Purchases are validated by RevenueCat, which tells our server your subscription status; we mirror it to unlock Pro. RevenueCat receives the store's purchase details and your FirstGym user id (after sign-in; before that, a random id). We never see your payment details: Apple and Google handle payment. Android: the RevenueCat library may save its random customer id in Google Play services Block Store, so that a purchase is found again after you reinstall the app. The app does not ask RevenueCat to collect advertising or device identifiers.

Crash reports

FirstGym does not send crash reports to a crash-reporting service. iOS: if you enabled "Share with App Developers" in iOS settings, Apple may share anonymous crash reports with us. Android: if you allowed your device to share usage and diagnostics with Google, Google Play may show us anonymous crash and "app not responding" reports.

Data stored on your device

Service providers

We use these providers only to run the app: Supabase (database and sign-in, EU), Cloudflare (our server), Anthropic (scanner and monthly readout), ElevenLabs (voice synthesis), Bunny.net (videos), RevenueCat (subscriptions), Apple (Sign in with Apple, App Store) and Google (Sign in with Google, Google Play). All connections use encryption in transit (HTTPS).

What we do NOT do

Retention

We keep your account and workout data while your account exists. When you delete the account, it is removed from our database immediately. Encrypted nightly database backups are kept for 30 days and then deleted, so deleted data disappears from backups within 30 days. Photos sent to the scanner and texts sent for the monthly readout or voice synthesis are not stored by us.

Deleting your data

This deletes your account and all workout data from our database immediately, deletes your RevenueCat customer record and the usage events of your account and of that install, and on iOS revokes FirstGym's Sign in with Apple access. The app then clears its data on the device (on Android, including the Keystore key). Encrypted backups roll off within 30 days. Deleting the account does not cancel a store subscription: cancel it in the App Store or Google Play. If you no longer have the app, see Delete your FirstGym account for how to request deletion by email.

Changes

This document is versioned in place. The current revision is always served from this URL. See also the terms of use and the legal notice.

Contact for data questions: support@zhbanov.com.