FLOW

Privacy Policy

Last updated September 14, 2026 · Flow for iPhone

Flow is an adaptive workout app developed by Ozan Sozuoz. You can train without an account. Flow stores training information on your device; account sync and Apple Health are optional. This policy explains the information involved and the choices available to you.

Information you enter

Flow stores your workout sessions and exercises, weights, repetitions, effort ratings, duration, distance, notes, bodyweight, body measurements, training goals, routines, schedules, equipment preferences, and training constraints you provide. It uses these records to plan workouts, support logging, suggest progression, and show your history and progress.

If you import a workout file or Apple Health export, Flow processes the selected file on your device. Supported workout and bodyweight records, source identifiers, and import records become part of your Flow data. Imported CSV rows can include the original text supplied in the file.

Your account and cloud copies

Without an account, Flow does not upload your workout records to its account service. If you choose Settings → Sign in for optional sync, Flow explains how your local and account records will be handled before linking them. When you choose to replace local training with existing account data, Flow first saves workout records and selected preferences under Settings → Backups & data → Before account sync. This local recovery copy includes photo references, not image files. It does not silently merge one person's local records into another person's account.

Flow uses Supabase for email and password sign-in, account recovery, and account sync. Your email address and authentication information are sent to Supabase when you use these features. Your device stores the session information needed to keep you signed in. You can change your password in Settings → Account settings → Change password.

Flow uses Resend to deliver account emails sent by Supabase, such as password-reset messages. Resend processes your email address, the message content (including any recovery link), and delivery metadata to send these emails and troubleshoot delivery. See Resend’s privacy policy for information about its data handling.

Supabase also retains operational request and authentication logs to support service reliability, troubleshooting, and account security. These diagnostics include your IP address, request time and status, client information, and authentication events. Its request logs also retain approximate location, such as city and country, derived from your IP address for operational security and diagnostics. Flow does not request device-location permission or collect GPS location for this processing. Authentication events and account-specific requests, including their diagnostic and approximate-location information, can be linked to your Flow account. This processing occurs when you use the connected account features and is separate from behavioral analytics.

Password-reset emails can open Flow's recovery website hosted on Vercel. That page sends your recovery session and new password to Supabase, and can open the Flow app when you choose. It loads fonts from Google Fonts and the Supabase browser library from esm.sh. These website providers receive the network requests needed to deliver the page and its resources; their request logs follow their own policies. This is separate from the on-device workout builder.

While you are signed in, Flow uploads workout changes and a backup of your saved training records and selected preferences to your account. These copies can include bodyweight, measurements, notes, routines, schedules, imported records, and health statistics saved with a workout. Backups also include a device name, timestamps, and record identifiers used to manage sync. They are associated with your Flow account and are not a public profile.

The updated app no longer creates training backups in iCloud and excludes its local data directories from new system device backups. Older versions may have saved training records, photos, and preferences in Apple backups. These older copies are not automatically deleted. In Settings → Backups & data → iCloud backups, you can restore or explicitly remove Flow's existing training backup. Manage other device backups through your Apple account settings.

Apple Health and Apple Watch

With your Apple Health permissions, Flow reads sleep duration, heart rate variability, resting heart rate, and their recent baselines to help suggest training energy. It can read overlapping strength workouts, heart rate statistics, and active energy to show Apple Watch workout results and avoid creating a duplicate workout. When no overlapping workout is found, Flow can save a completed strength workout to Apple Health.

Heart rate and active energy results saved with a Flow session become part of that session's backups and sync. Your choice to connect Apple Health stays on this device: restoring a backup does not turn it on or change the current device's choice. Turning off Settings → Connections → Apple Health stops further HealthKit access by Flow; you can also revoke permissions in Apple's Health settings. This does not delete records already saved in Flow or Apple Health.

The initial App Store release does not include Flow's Watch companion. Separately distributed personal builds can exchange the active workout, planned sets, logged sets, and rest timer state with the companion on a paired Apple Watch through Apple's WatchConnectivity service.

Photos and custom exercise images

Flow requests camera or photo library access when you choose to add an image. It copies selected progress photos and custom exercise images into the app's storage on your device. Flow's account sync and its own JSON cloud backups do not upload the image bytes. Progress-photo dates, notes, record identifiers, and local file references are included in the training backup. Image files may remain in device backups created by older versions.

AI features

The initial App Store release does not enable Google Gemini. Its workout builder and coaching features run locally. The following Google processing applies only to separately distributed personal builds configured with Gemini.

AI coaching is off by default. In a build configured with Google Gemini, you can review the disclosure and choose to enable it in Settings. With your permission, Flow sends text to Google's Gemini API to produce workout reflections, weekly notes, program summaries and check-ins, and to interpret workout requests, goals, or training constraints. The submitted text can include exercise names, sets and best lifts, training volume, effort or energy, personal records, program progress, equipment-based exercise choices, and text you enter. This can include health-related information. Flow does not attach progress photos or send your account password in these requests.

You can turn AI coaching off in Settings at any time. Flow then blocks new requests and attempts to cancel requests in progress; cancellation cannot retract information already received by Google. Your choice stays on this device and is cleared during account cleanup. Local coaching and workout planning remain available with AI off or unavailable. Google's processing and retention depend on the Gemini service and account configuration; its terms may allow service improvement and human review. Avoid entering private medical details.

Strava

The initial App Store release does not include the Strava connection. The following applies only to separately distributed personal builds with Strava configured.

In a build with Strava enabled, connecting your Strava account authorizes Flow to create activities. Flow stores the access and refresh tokens needed for that connection and your Strava athlete name on your device. When you upload a workout, Flow sends its title, start time, duration, exercise names, repetitions, and weights to Strava. Automatic uploads are controlled in Flow Settings. Strava controls the visibility and handling of an uploaded activity according to your Strava settings and its policies.

You can disconnect in Flow Settings and revoke Flow's access in Strava. Disconnecting does not delete activities previously uploaded to Strava; remove those in Strava if you wish.

Notifications, sharing, and service providers

Rest timers and training reminders use local notifications. Widgets and Live Activities show selected workout information through Apple's system features. You can control notification and Lock Screen visibility in your device settings.

When you export or share a report or backup, you choose the destination using your device's sharing controls. Anyone who receives a file can retain their own copy.

Flow does not include advertising or third-party behavioral analytics. The connected services described above receive information needed to handle your requests, including standard network information such as your IP address. Their privacy information is available from Supabase, Apple, Google Gemini, and Strava.

This policy website is hosted on GitHub Pages and contains no analytics scripts or advertising. GitHub may process standard request information when you visit, as described in its privacy statement.

The password-recovery website's hosting and resource providers publish information at Vercel, Google Fonts, and esm.sh.

Retention, access, and deletion

Flow keeps your active training records until you remove them, replace your history, or clear the app's local data. When account sync is enabled, its change history can retain older versions of records and deletion markers in Supabase until you delete your Flow account. Deleting an individual record removes it from active views but does not erase every earlier version in sync history or existing backups. Flow keeps up to eight automatic weekly snapshots on your device and can retain separate backups made before a database upgrade.

Use Settings → Backups & data → Export history to save a CSV or JSON copy. Use Settings → Account settings → Delete account to request removal of your Flow account and its active Supabase backup and sync records. This action requires a working connection. If it reports an error, account removal or local cleanup may be incomplete; contact the developer if you cannot confirm the result.

If you use Flow without an account, Settings → Backups & data → Delete local data removes Flow's training records, app-private photos, routines, preferences and local backups from this device. This does not delete files you exported or records in Apple Health. Local copies saved before account sync remain until you remove Flow's local data or delete/sign out of an account as described below; they are not part of the automatic weekly-snapshot rotation.

Account deletion also clears the local workout database and pending sync records, app-private photos, snapshots, upgrade backups, preferences, connected-service tokens, and AI permission. Local data cleanup also resets Flow's Apple Health connection choice; it does not change permissions in Apple's Health settings. If local cleanup fails, Flow reports the failure and blocks account sync while cleanup is retried. Settings → Sign out clears local account data while retaining your synced account records. If you explicitly choose to sign out with undelivered changes, those pending records can stay on the device for delivery only to the same account.

Account deletion does not remove files you exported, original photos in your photo library, activities in Strava, Apple Health records, or older copies in your Apple account. Remove these through their respective services. You can explicitly remove Flow's legacy iCloud training backup in Settings → Backups & data → iCloud backups.

Operational logs and backup copies held by service providers follow their applicable retention settings and legal obligations. As of this policy's date, Supabase's published Free plan lists one day of API and database log retention and one hour of authentication audit logs. These plan log-access windows are not a guarantee that all provider-held copies are erased at that time. Deleting a Flow account does not establish deletion of every operational log or record retained by a provider.

Contact and changes

In the app, Settings → Help & privacy contains Privacy policy, Contact support, and Open source licenses.

For privacy questions or help with a deletion request, contact Ozan Sozuoz at ozansozuoz@gmail.com. Please do not include passwords or your full health history in an email.

The date at the top will be updated when this policy changes. Material changes to data handling will be reflected in the policy and relevant app disclosures.