Privacy policy

Version 1 · effective 2026-10-26

Your Gym Bro · https://your-gym-bro.pages.dev · version 1, effective 2026-10-26

In short

1. Who is responsible

Data controller: private individual Ivan, Ukraine. Privacy contact: 19thanks96@gmail.com. We reply within 30 days.

2. What is stored where

On your device (in the browser, IndexedDB / localStorage) — and nowhere else unless you decide otherwise:

Reading machine labels (OCR), QR codes and counting reps with the camera happen on the device: no frames are sent anywhere.

On our server (Cloudflare D1) — only this:

WhatWhyHow long
Gyms added by people (name, type, address, map point; home-made gyms rounded to ~100 m), machines in gyms; with them, the anonymous device id that added them and an "added on site" flag (yes/no, no coordinates)so others can see what a gym has; the id lets you delete your own entrieswhile the service runs or until deleted. Home gyms never leave the device.
Coach hand-off code (goal, sex, age, height, weight, level, schedule, gym equipment — no name, no log) or a plan from a coachso a human coach can open it by code30 days
"Usually busy": only the number of taps per gym / machine / weekday / hourshow when a machine is freer8 weeks. No device id, no IP.
Reminder subscription: delivery address from your browser's push service, encryption keys, language, time zone, reminder days and timesend the reminder on timeuntil you unsubscribe or 60 days without opening the app
Encrypted backup (separate database): backup address, hash of a secret, ciphertextrestore your data on a new phoneuntil you delete it or 400 days without saving/opening. Only you have the key — we cannot read the backup.
Rate-limit counters: shortened hash of the IP address + dayabuse protection (daily request limits)~3 days. The IP itself is not stored.
AI technical stats: request type, duration, status, token counts, language, app version, random request numbersee failures and stay within the free quota30 days. No IP, no device id, no request or answer text.

The anonymous device id (x-device-id) is a random string created on your phone. It is not linked to a name, e-mail or advertising id and is only used to delete your own entries.

3. Who else receives data and why

ServiceWhat it receivesWhy
Cloudflare (hosting, server, database; US/EU)IP address and technical data of each request, like any host; the data in the table aboveto run the site and server. Cloudflare keeps technical logs under its own rules.
Google Gemini API (AI)a machine photo or walk-through frames — when you ask to recognise; for plans and swaps — sex, age, height, weight, goal, level, gym equipment, tired muscles, the reason for swapping an exercise (e.g. "hurts" or "discomfort"), a dictated plan. No name, no device id.build a plan, suggest a swap, recognise a machine. On the free tier Google may use what is sent to improve its models, and Google's human reviewers may read it. So do not film people, faces or documents. There is no separate consent for this: if you do not want it, do not pick the "hurts" reason and do not use AI features — plans can be built from ready-made templates.
Google Analytics 4only after "Allow": page views (codes in links removed), events "gym added", "machine added", "plan built", "workout finished" (duration, mode)understand what works. No name, weight, coordinates or text; Google signals and ad personalisation are off. Retention in GA — 2 months.
OpenFreeMap (map tiles), Photon / komoot (address search), Overpass API / OpenStreetMap (gyms nearby)requests go directly from your device: IP address, map area, point coordinates or search textshow the map and find gyms. The app uses your location only with your permission and does not send it to our server.
Your browser's push service (Google, Apple, Mozilla, Microsoft)an encrypted reminderdeliver the reminder.
Browser speech recognition (Google in Chrome, Apple in Safari)your voice when you press "Dictate"turn speech into text. The browser does this, not us.
Google Mapsonly if you press "Open in Google Maps": the gym's coordinatesdirections.

We do not sell data, show ads or share data for advertising.

4. Age: the app 14+, AI 18+

5. European Economic Area, Switzerland, United Kingdom

Google's terms allow the Gemini API for these countries only on the paid tier, where Google does not use data to improve its models. So for users in the EEA, Switzerland and the UK, AI works only through the paid tier; until it is connected, AI is switched off there and the app offers ready-made templates. The server detects the country from a technical request header and does not store it.

6. Legal bases

7. Your rights and how to use them

You may know what data exists, get a copy, correct, delete, restrict, object and withdraw consent.

Complaints: Ukrainian Parliament Commissioner for Human Rights (ombudsman.gov.ua); in the EU — your local data protection authority.

8. Cookies and similar technologies

9. Security

HTTPS everywhere; the cloud backup is encrypted on the device (AES-GCM), the server sees only ciphertext; the server keeps only hashes of secrets; API keys live only on the server. If you lose your recovery key, nobody can restore the backup — not even us.

10. Changes

A new version appears here with its date. If a change affects consents, we will ask for consent again in the app.

Back to home