Privacy
What GymBot stores, who can see it, and how to get it out or delete it.
The short version. GymBot is run by one person, Billy, on his own Cloudflare account. He can technically read your training data, as anyone who runs a database can. He undertakes not to, and this page explains what that does and doesn't mean. Your written notes are encrypted, so a leaked database doesn't expose them, but the key is GymBot's, not yours. Your data also goes to whichever AI assistant you connect, because that's the product. Nothing of yours is visible to anyone else unless you choose it. Publishing a programme to the marketplace shows its design only, never a weight, rep, date or measurement. Sharing a workout gives anyone you send the link a one-workout summary. Your activity (a summary of every workout in your history, and your best lift on each exercise) is seen by your followers, who are people you approve (you're asked the first time), or by anyone signed in to GymBot, but only if you make your profile public. Never your notes or measurements.
What's stored
| Your account | Your name, email address and Google account id, supplied by Google when you sign in. Your timezone, and when you last opened your notifications. No password: GymBot never sees or stores one. |
|---|---|
| Your training | Exercise names, weights, reps, set and session dates, which programme day each session targeted, which exercises you did back to back as supersets, and any notes you or your assistant write on a set or session. The notes are encrypted (see below). |
| Your measurements | Body metrics you choose to track: body weight by default (your programme asks for a reading at the start of a session), plus anything you add, such as body fat or resting heart rate. Values are stored in the clear so they can be charted; any note on a reading is encrypted. |
| Breaks from training | If you come back after more than five days away, GymBot asks why (illness, injury, travel, work/life, laziness or something else) and stores your answer against that break if you give one. Answering is optional. The reason is stored in the clear; anything you write in your own words is encrypted. |
| Your programmes | Plan and day names, target sets and reps, progression increments, and the goals and rationale your assistant recorded when it designed the programme. The written parts are encrypted. |
| Push reminders | If you turn training reminders on, the push address your browser creates for the device, and the date of the last reminder sent. It's only used to send you those reminders. Turning reminders off deletes it. Reminder text passes through Apple's or Google's push relay encrypted, so the relay can't read it. |
| Your public profile | A username, a display name and an optional one-line bio, all typed by you and changeable at any time. None of it is derived from anything else we hold. GymBot has no username generator, so nothing suggests a handle based on your email address or the name on your Google account, and neither of those is ever shown to another user. Anyone signed in to GymBot can find you by your username or display name, and that is all a search shows. Your bio, and how many followers you have and people you follow, are shown only to the followers you approve, or to anyone signed in if your profile is public. There's no way to look anyone up by email. Your username and display name are also shown beside a programme you publish or a workout you share, and on your invite link. |
| Programmes you publish | A snapshot of the programme's design, stored unencrypted because you chose to make it public. Every version you publish is kept, so people who copied an older one can see what changed. |
| Workouts you share | When you tap "share" on a finished workout, a summary of that one workout is copied into a separate public record, stored unencrypted because anyone with the link can read it: its date, the programme day's name, the number of sets and exercises, the total weight moved, how long it took, each exercise's name with its heaviest set and whether that was a personal record, and which muscles those exercises worked (for the body map). Not your notes, body measurements, reasons for breaks, or the other sets. Taking the link down deletes the record. |
| Who you follow | Who you follow, who follows you, whether each was approved, and when. Once you share, also a random invite link token. Stored in the clear, since both people involved can see it. Unfollowing, declining or removing someone deletes the record. |
| Who you've blocked | Who you blocked, and when. Used only to keep the two of you apart. The person you blocked is never shown it or told. Unblocking deletes the record. |
| Workouts your followers see | Only once you've let someone follow you. For every workout in your history, and each one you share after (not the ones you keep to yourself), a summary is copied into a separate record, stored unencrypted so the people you approved can read it: its date, the programme day's name, the number of sets and exercises, the total weight moved, how long it took, the muscles it worked, each exercise's name with its heaviest set and whether that was a personal record, and the name and description you gave it on the share page (encrypted on your own workout, in the clear in this copy). Not your notes, body measurements, reasons for breaks, the time of day or the other sets. Stopping sharing deletes all of them. |
| Your best lifts | Only while you share with followers. For each exercise from GymBot's exercise library you've done: your heaviest set, your best estimated one-rep max, and whether that's going up, flat or down over the last six weeks, so your followers can compare their lifts with yours. Recalculated from your own log whenever it changes; deleted when you stop sharing. |
| Reactions | When you give a gold star (or aura, in bro mode) on a friend's workout: who reacted to which post, with which, and when. Only the post's owner sees who reacted; other followers see the counts. |
No location tracking, device fingerprinting, advertising identifiers, analytics SDKs or third-party trackers of any kind. GymBot has never had any and has no plans to.
Why it's collected
One purpose only: running GymBot for you. That means storing your training history, showing it back to you on the dashboard, and giving it to the AI assistant you connect so it can plan and log your sessions. Your account details are used to sign you in and to know whose data is whose.
It isn't used for anything else: not research, not advertising, not training AI models. The one internal use is the admin screen described under "Billy, who runs it" below: when and how often each account trains, so he can tell whether GymBot is being used and who might need a hand.
Who can see it
You
Every query the app makes is scoped to the signed-in user. No screen in GymBot shows one user another user's training data, other than what its owner chose to share (below). The one screen that looks across accounts is the admin screen, and it shows activity (dates and counts), never training. See below.
Other GymBot users
By default, nothing.
There are three exceptions, and each happens only because you chose it. The first is the marketplace. If you publish a programme, other signed-in users can see and copy it. They see:
- The programme's design: day names, exercises, target sets and reps, progression increments, and the cycle it runs on.
- Your username and display name. Not your email or your Google name.
- Your per-exercise notes, goals and rationale, only if you say yes. You're asked separately every time you publish, with the notes shown to you first.
Publishing never includes any weight you've lifted, any rep, any session date, any body measurement, your starting weights, or anything else you've logged. A published programme is a plan, not a training history.
Until you publish or share something, another user can find your account only in search, by your username or display name. They see those two things and can ask to follow you.
Publishing takes a snapshot. Editing your own copy afterwards changes nothing other people can see until you publish again. You can remove a programme from the marketplace at any time. That stops new copies, but people who already copied it keep theirs: it became their own programme when they took it.
The second is a workout link. Tapping "share" on a finished workout makes a link, and anyone with the link can open it, signed in or not, GymBot user or not, so you can paste it into a chat. They see a summary of that one workout:
- Its date, the programme day's name, the number of sets and exercises, the total weight moved and how long it took.
- Each exercise's name, the number of sets, its heaviest set (weight and reps) and whether that set was a personal record.
- A body map of the muscles those exercises worked, shaded by how many sets each muscle got. It's worked out from the exercises above and the muscles each one is mapped to, nothing else.
- Your username and display name. Not your email or your Google name.
A workout link never includes your notes (on a set, an exercise or the session), body weight or any other measurement, why you took a break, the sets beneath each exercise's heaviest one, the time of day, or anything from any other workout. The link can't be guessed and isn't listed anywhere. Only the people you give it to can find it, though they can pass it on, which GymBot can't prevent. It tells search engines not to index it. Pasted into a chat, it previews as a picture of the same summary (its first few exercises), which the chat app fetches the way it fetches the page.
Sharing takes a snapshot, like publishing: editing the workout later changes nothing on the link until you update it. Taking the link down deletes the snapshot and the link stops working at once (a preview already sent to someone's chat is theirs, and may stay). If you later discard the workout, its link comes down automatically within the hour.
The third is followers. Every account starts private: only your followers see your activity, and nobody follows you until you approve them. The first time you let someone in, GymBot shows you exactly what they'll see and asks. After that, each approval is your consent.
- Other GymBot users can find you in search and ask to follow you. Until you approve them they see your username and display name and nothing else: nobody sees your activity until you approve them. Or you can send someone your invite link, which is approval given in advance: whoever opens it can follow you without asking. Making the link counts as letting someone in, so you're asked the same way. You can make a new link at any time, which kills the old one.
- The people you approve see your activity: your whole workout history, including history you imported from another app, and every workout you share after. For each one: its date, the programme day's name, the number of sets and exercises, the total weight moved, how long it took, the muscles it worked, and each exercise's name, number of sets, heaviest set and whether that was a personal record, plus the name and description you give it, if any. When you finish a session on the web you choose Save and share or Save, which keeps that workout to yourself unless you share it later. Finishing one in chat shares it. Either way you can hide any single workout afterwards, on the web.
- They can compare their lifts with yours on exercises from GymBot's exercise library: your heaviest set, your estimated one-rep max and whether it's going up, flat or down over the last six weeks. Raw numbers only. Your body weight is never shared, so there are no "pound for pound" ratios.
- They see your username, display name and bio, and how many followers you have and people you follow. Not your email or your Google name.
- They can react to a workout with one tap, and you see who did.
- Or you can make your profile public in settings. It's off unless you turn it on, and you're asked first. Then anyone signed in to GymBot who opens your profile can see your whole activity history and follow you without asking. It isn't on the open web: there's no page of it for people without an account, and nothing for search engines. Switching back to private keeps the followers you have; new ones go back to asking.
Followers never see your notes, body weight or any other measurement, why you took a break, the time of day you trained, the sets beneath each exercise's heaviest one, or a workout you hid. Following someone doesn't share anything of yours with them. That's a separate choice.
Unfollowing someone, or removing a follower, cuts access straight away. They could ask again, so you can also block anyone, from their profile or a request. That ends any follow between you in either direction and removes the reactions you left on each other's workouts. From then on neither of you sees the other's activity, and they can't ask to follow you, use your invite link or find you in search. They aren't told. Unblocking brings nothing back by itself. Stopping sharing (in settings) deletes every workout summary and best lift you've shared, the reactions on them and your invite link, at once. Your followers stay your followers but see nothing until you start again, and you're asked again then. If you edit a shared workout (from chat), what your followers see is updated; if you discard it, it's taken down. If you turn on pushes for friends' PRs, you get one when someone you follow sets a personal record (off unless you turn it on). When someone asks to follow you, you get a push saying who (on unless you turn it off in settings).
Your feed (the posts of the people who let you follow them, beside the ones you shared) and your activity history are visible only to you.
Your AI assistant
This is the big one, and it's by design. When you connect GymBot to Claude, ChatGPT or another assistant, your training data is sent to that assistant so it can plan and log your sessions. Your exercise names, weights, reps and notes go to Anthropic, OpenAI or whoever runs the assistant you chose, and are handled under their privacy policy, not this one. If you write "shoulder still hurting" in a set note, that text goes to them. GymBot can't encrypt its way around this: an assistant that can't read your training data can't coach you.
Billy, who runs it
He can. GymBot runs on his Cloudflare account, so he can open the database console and read any table, and no technical measure stops him. Specifically:
- He can query the database directly.
- He can deploy code that reads or exports anything.
- He holds the key that signs session cookies, so he could issue himself one for your account.
He has one admin screen, and this is everything it shows about each account: your name, email and username, when you signed up and last signed in, how far through setup you got, when you were last active, the date of your last workout, and how many workouts you've logged (in the last 30 days and in total). It never shows what you lifted: no exercise, weight, rep, note, body measurement or reason for a break.
What he undertakes beyond that: not to look at your training data, not to build any screen that shows more of it than the above, and not to share, sell or publish it.
Cloudflare
GymBot runs on Cloudflare Workers and D1. Cloudflare encrypts the database at rest with keys it manages, under its own security programme. That protects against a stolen disk. It doesn't mean Cloudflare couldn't read the data, and GymBot can't promise anything about their internal controls beyond what they publish.
Where it goes overseas
GymBot is Australian, but its infrastructure isn't all local. Who holds your data, and where:
- Cloudflare (United States) runs the servers and the database. Data is stored on Cloudflare's global network and may be processed in the United States and other countries where it operates.
- Google (United States) handles sign-in only. Google tells GymBot your name, email and account id; GymBot tells Google nothing about your training.
- Anthropic, OpenAI or whichever assistant you connect (typically United States) receives your training data whenever you use the connector, as described above.
What "encrypted" does and doesn't mean here
"Your data is encrypted" usually means the cloud provider encrypts its disks. That protects against physical theft and nothing else: the operator can still read everything.
GymBot has three layers, and they protect against different things:
- In transit: HTTPS everywhere.
- The database on disk: encrypted by Cloudflare with Cloudflare's keys. Protects against a stolen disk. Nothing more.
- Your notes, individually: GymBot encrypts the
free-text fields itself, before they reach the database: every note you
or your assistant write on a set, a session or a body-metric reading,
and the notes on your programme. Anyone reading the raw database sees
gbe1.k1:OcyeKOpzLXCEJ1Sh…where the words used to be. - End-to-end: no. GymBot isn't end-to-end encrypted, and since the point is to hand your training data to an AI assistant, it can't be.
What note encryption is for
Notes are where the sensitive things live: injuries, pain, how you felt, why you cut a session short. So they're encrypted separately. Your weights, reps, dates and body-metric values are not: the charts are computed from those numbers in the database itself, which only works if they're readable.
The limit: the key is held by GymBot, not by you. There is one key, it lives with the server, and it isn't derived from your Google account or your login. That means:
- It does protect you if the database is ever leaked, stolen or copied somewhere it shouldn't be. A backup in the wrong hands is numbers and gibberish, not your training diary.
- It does not protect you from Billy, who has the key.
True end-to-end encryption would need a key only you hold, and then your AI assistant couldn't read your training data or coach you. That's the trade-off.
Getting your data out, and deleting it
Both are on the your data page, in the account menu at the top right of the app.
- Export gives you a JSON file with everything: every set, session, exercise, programme and body-metric reading, who you follow, who follows you and who you've blocked, what you've shared and the reactions you gave, plus your account details. Complete, and straight away. Your workout log also comes as a CSV, one row per set, for a spreadsheet or another app. The JSON file can restore a fresh GymBot account from the same page; your username, published programmes and workout links stay with the old one.
- Delete removes your account and every row of training data attached to it, including what you shared with followers and every follow and block in either direction, so nobody keeps following an account that's gone. It's a real delete, not a hidden flag, and it can't be undone. You'll type your email address to confirm.
You can also bring data in from another app's export, on the same page. The file is read in your browser and you see what's in it before anything is saved. Only the workouts are sent (dates, exercises, weights, reps and notes), and they're stored like workouts you log here, with notes encrypted. An import can be undone for a week.
One caveat on deletion: Cloudflare D1 keeps point-in-time restore snapshots of the whole database for 7 days. For that week, your deleted rows still exist in Cloudflare's backups and could in principle be restored. After that they're gone.
How long it's kept
Your training history is kept for as long as you have an account. There's no automatic expiry, and no plans for one.
Correcting something that's wrong
You can make most corrections yourself: untick a set in the logger and it's deleted, then re-log it with the right numbers. Your assistant can also edit sets and sessions.
If something's wrong that you can't fix in the app (your name, your email, anything else), ask and it'll be corrected. No charge, no form.
What GymBot never does
- No selling or sharing your data with anyone, for any purpose.
- No advertising, ad networks or marketing analytics.
- No third-party trackers, SDKs or pixels.
- No training AI models on your data.
- No leaderboards and no public numbers. What you lift is never ranked against strangers or published anywhere on GymBot's own initiative. The marketplace shares programme designs, a workout link shares one workout's summary, and sharing with followers shows your workouts and best lifts to people you approved. Each happens only by your explicit choice, and nothing else is shared. A comparison only lines you up against people you follow who chose to share with you.
- No list of members to browse, and no way for another user to find you by email. Search finds you by your username or display name and shows those two things only; anything more waits until you approve someone. You're never suggested to anyone: the only suggestions are a short, fixed list of public profiles run by GymBot's maker, shown to new accounts so their feed isn't empty.
If something goes wrong
If GymBot is ever breached in a way that exposes your data, you'll be told directly and promptly, with what happened and what was exposed.
Complaining
If you think GymBot has mishandled your data, email Billy. You'll get a reply within a few days, and a full answer (what happened and what's being done about it) within 30 days.
If that doesn't resolve it, you can take it to the Office of the Australian Information Commissioner, the national privacy regulator, at oaic.gov.au. They generally expect you to have complained to GymBot first and given it 30 days to respond.
Questions, or want something removed
Email Billy. Export and delete are always on the your data page.