Privacy Policy

Last updated: October 30, 2026

This Privacy Policy explains how WEBMIND TECHNOLOGIES LTD ("we", "us", "our") handles personal data in connection with the FightFlow mobile application (the "App") and the marketing website at https://fightflow.app (the "Site"). FightFlow is a voice-led solo combat-training app for boxing, kickboxing, and Muay Thai.

We are the data controller. You can reach us at hey@fightflow.app. Our registered office is Hova House, 1 Hova Villas, Brighton & Hove, England BN3 3DH (company number 16668049).

Our approach in one paragraph

FightFlow is built to need as little of your data as possible. There is no account and no login. Your training history, streaks, settings, combos, measured heart rate and any clips you record are stored on your device. We do not run a server that stores them, we do not sell data, and we do not use advertising or cross-app tracking. A small amount of data still has to leave your device for the App to function (mainly to verify purchases and to check for required updates), and that is described in full below.

Data kept on your device

Training history, streaks, goals, saved combos and routines, and app settings are stored in the App's local storage on your device. The App does not send this information to us or to any third party, except what you choose to share or export, such as a combo you share or a backup file you save or send. You can export it to a local backup file (.ffbk) and restore it yourself. That file stays under your control and is never uploaded to us. Some data is never written to that file, including the free-tier daily training-time meter, your subscription entitlement, your recorded video and settings that only apply to one phone, such as coach-voice volume. Settings → Delete All Data erases this data from the App and keeps the free-tier daily meter; deleting the App removes all of it from your device. Neither removes a backup file you exported or a copy in your phone's own backup. Delete All Data also leaves workouts the App saved to Apple Health or Health Connect, the permissions you granted the App, and the identifier and purchase records described under “Purchases & subscriptions” below.

Your phone's own backup works separately from the App. On Android, if backup to your Google account is turned on, Android can include the App's local data in that backup, under Google's terms; recorded clips are left out of it. On iPhone, the training data in the App's local storage and your recorded clips are set to be skipped by iCloud Backup.

Watch and health data (optional)

FightFlow can show the heart rate and calories your wearable measured during a training session. Nothing is measured until you switch it on yourself, in one of the two ways below, and you can switch it off again at any time. FightFlow does not estimate heart rate or calories from your weight, age or sex, and never asks for them. If nothing was measured, nothing is shown. The numbers are training feedback, not medical information.

1. Apple Health and Health Connect (read after the session)

This starts when you tap Connect health app in Settings → Watch & health and grant access in the system permission screen. With that permission the App reads from Apple Health (iOS) or Health Connect (Android) the heart-rate samples, active calories and workout records that your watch or band recorded, and only for the span of a session you completed in FightFlow, plus a minute on either side. When a timed calorie record runs past the session itself, the App counts only the part that overlaps the session, in proportion to time. It also reads your highest heart rate over the previous 90 days, which anchors your personal heart-rate zones, and reuses that result for 24 hours. Workout records from other apps are used for two checks only: whether that session was already recorded, so the App does not file a duplicate, and whether the health app's own average and peak heart-rate figures belong to that session. They are not shown or stored.

With the write permission, the App also saves each finished session to Apple Health or Health Connect as a workout (start time, end time, the type of training and the name FightFlow), so it counts towards your activity. It never writes heart rate or calories, and it skips the write when a workout already covers that time, including one saved by the FightFlow watch app. You choose which of these permissions to grant in the system permission screen and can change or revoke them there at any time. Disconnect health app in Settings → Watch & health stops the reads and writes until you connect again or use Settings → Delete All Data, and removes the effort data the App read from the health app. A Disconnect made in a version before 1.2.5 may not be kept after updating if FightFlow still has access in Apple Health or Health Connect. Tap Disconnect health app again, or revoke FightFlow's access there.

2. The FightFlow watch app (live, during the session)

The watch app comes with the phone app: on iPhone it arrives through the Watch app for a paired Apple Watch, and Google Play delivers it to a paired Wear OS watch. It measures nothing until you allow it to use the watch's sensors in the permission prompt shown on the watch. Once allowed, starting a session on your phone starts a workout on the watch, which reads the heart rate and calories your watch measures while the session runs and sends the readings to your phone, which shows your heart rate live in the session player. On Apple Watch the readings come through Apple Health on the watch, which also saves the session there as a workout with the heart rate and calories it measured. On iOS the phone and watch talk over Apple's local watch link. On Android the readings travel through the Google Play services wearable link, which may route through Google's servers when the watch and phone are not directly connected, under Google's privacy policy. We do not receive them. Removing the watch app, or its sensor permission on the watch, ends this.

What the App keeps, and where

For each measured session the App keeps your average and peak heart rate, calories, a simplified heart-rate curve, time in zones and, for Conditioning, how far your heart rate dropped during its rests. From those it keeps daily totals, your personal bests and the highest heart rate your watch has measured, which anchors your zones. All of it is stored in the App's local storage on your phone together with the session, and it feeds the Session End screen, History, the Effort tab in Progress and your personal bests. The App does not send it to us or to any third party, unless you share a backup file that contains it; it is not used for advertising or analytics, and it is not sold. Per-session totals are kept for 400 days, the heart-rate curve for 35 days with the session itself, and personal bests until you delete them. It goes into a local backup file only if you create one; your health-app connection, its permissions and the watch link are never written to that file. Your phone's own backup is covered under “Data kept on your device” above. Disconnecting in Settings → Watch & health removes the effort data that came from the health app (sessions measured by the watch app stay), and Settings → Delete All Data erases it. On Android, the App also keeps up to 64 result messages from the watch, so that it does not act on the same one twice. A message can include a session identifier, times, a reason and calories. Delete All Data does not clear them; deleting the App does.

Data that leaves your device
1. Purchases & subscriptions (RevenueCat)

FightFlow Unlimited is sold as in-app purchases through the Apple App Store and Google Play ($2.99/month, $23.99/year, or $79.99 one-time lifetime; all three grant the same Unlimited entitlement). We never see, collect, or store your payment details, store-account email, name, or billing address. Payment is handled entirely between you and Apple or Google.

To verify whether a device is entitled to Unlimited and to record purchases, we use RevenueCat, Inc. (a US company) as our data processor. RevenueCat's SDK runs the first time you open the App and receives:

  • an anonymous app-user identifier generated on first launch (no name, no email);
  • store-issued product identifiers, transaction identifiers, and subscription expiry / renewal dates;
  • device platform (iOS or Android), app version, the country of your store account, and your device IP address (used by RevenueCat to derive approximate country and is not stored by us).

RevenueCat does not receive your name, email, payment details, or training history. This data is used only to verify entitlement, prevent fraudulent purchase replays, and produce aggregate subscription statistics. RevenueCat's privacy policy is at revenuecat.com/privacy.

2. App-configuration & update checks

When the App starts (and periodically while it runs) it contacts a configuration endpoint we host on Google Cloud / Firebase to check for required updates and changelog notices. This endpoint is read-only. It returns configuration to your device and does not store information about you: but, like any internet request, it exposes your device IP address to our hosting provider (Google), which acts as our processor. We do not retain these requests.

3. Optional microphone & camera features

Some features are off by default and only ever run if you turn them on and grant the relevant OS permission:

  • Session-end voice commands. If enabled, the App listens for short spoken commands (e.g. "save", "restart"). On iOS this uses on-device speech recognition, so audio stays on your device. On Android the App uses your device's system speech recognizer, which (depending on your device) may send audio to your speech provider (typically Google) for transcription under that provider's privacy policy.
  • Session recording ("Reels"). If you turn on recording for a session, the App captures video using your camera, and sound using your microphone if Record audio is on. Recordings are saved locally, and the App does not upload them. If you save a clip to your photo library or share it, it goes wherever you send it.
Legal bases (UK GDPR / EU GDPR)
  • Performance of a contract (Art 6(1)(b)): verifying and delivering your Unlimited entitlement.
  • Legitimate interests (Art 6(1)(f)): preventing fraudulent purchases, keeping the App secure and up to date, producing aggregate, non-identifying statistics, and measuring which Site pages and links are useful with analytics that sets no cookies (see Cookies & website analytics below; you can object at any time).
  • Consent (Art 6(1)(a)): the optional microphone, speech recognition, camera, and watch and health-data features, which you enable yourself and can switch off at any time.
  • Explicit consent (Art 9(2)(a)): heart-rate and calorie data is health data. It is used only for training feedback, and only after you connect a health app or allow the FightFlow watch app to use your watch's sensors yourself.
International transfers

RevenueCat stores and processes this data in the United States (on Amazon Web Services). That transfer is covered by RevenueCat's Data Processing Addendum, which incorporates the EU Standard Contractual Clauses (Commission Decision (EU) 2021/914, controller-to-processor module) and, for UK data, the UK Addendum to those Clauses issued by the ICO. Site analytics collected by Umami is stored in Umami's EU (Frankfurt) region. Umami Software, Inc. is based in the United States, and it and its subprocessors may process that data outside the UK and EEA. Umami's Data Processing Agreement incorporates the EU Standard Contractual Clauses and, for UK data, the UK Addendum where required. Email us for a copy of these safeguards. Apple and Google process purchase, speech and watch-link data (where applicable) under their own privacy policies and transfer mechanisms, see apple.com/legal/privacy and policies.google.com/privacy.

How long we keep data
  • On-device data: until you delete it in the App or uninstall the App. Delete All Data keeps some of it, such as the free-tier daily training-time meter; uninstalling the App removes that too. Session history is pruned automatically after 35 days and measured-effort totals after 400 days.
  • Purchase records held by RevenueCat: for as long as needed to provide and verify your entitlement, and to meet our legal, tax and accounting obligations.
  • Configuration / update requests: not retained by us.
  • Site analytics in Umami: six months. Umami's operational and security logs are kept for as long as Umami needs them for those purposes, under its Data Processing Agreement.
Your rights

If you are in the UK, EU or EEA, you have the right to access, rectify, erase, restrict, or object to our processing of your personal data, and the right to data portability. Where we rely on consent, you can withdraw it at any time by turning the relevant feature off. Because most data is held on your device or only as a pseudonymous identifier, in some cases we may need more information to locate data about you. For data kept only on your device, you can also use the export and delete controls in the App's Settings, described under “Data kept on your device” above. To make a request, email us at hey@fightflow.app.

Complaints

We'd like the chance to resolve any concern first, so please contact us. You also have the right to lodge a complaint with a supervisory authority. In the UK that is the Information Commissioner's Office (ICO), ico.org.uk/make-a-complaint. If you are in the EU or EEA, you can complain to your local data protection authority (a list is at edpb.europa.eu).

Security

We use commercially reasonable measures to protect data processed through the App. However, no method of transmission or electronic storage is 100% secure, and we cannot guarantee absolute security.

Cookies & website analytics

Our marketing website sets no cookies of its own. We use Umami, an analytics tool, to see which pages and links visitors use. Its script sets no cookies, writes no identifiers to your browser storage, does not track you across other websites, and skips browsers that send a Do Not Track signal. Umami processes your IP address and browser details to derive a pseudonymous identifier that groups your activity on the Site, and to estimate your approximate location, which can include country, region and city. Umami's analytics records do not contain your raw IP address; Umami and its infrastructure providers may keep IP addresses separately in operational and security logs. Umami Software, Inc. processes Site analytics for us as our data processor. You can object to this analytics at any time: turn on Do Not Track or block the script, or email us. YouTube videos on the Site load from YouTube's privacy-enhanced mode when they scroll into view; from then on, Google may set cookies under its own privacy policy. The Site also keeps a display setting and, if you close the install prompt, a note for that tab in your browser; neither is sent to us. See our Cookie Policy for detail.

Children

FightFlow is intended for adults (18+), and the App is not directed at children. We do not knowingly collect personal data from children. If you believe a child has provided us with personal data, contact us and we will delete it.

Changes to this policy

We may update this Privacy Policy from time to time. When we do, we will revise the "Last updated" date below and, where appropriate, notify you in the App. Please review this page periodically.

Contact

Questions about this Privacy Policy or your data? Email contact us. (hey@fightflow.app).

Last updated: October 30, 2026