Privacy
Short version: the report works with no account and stores nothing about you. An account stores your email address, your settings and the training you log, and you can download or delete all of it yourself, immediately.
Using the report without an account
Uploads are not stored. When you upload a workout export, it is processed in memory to produce your report and then discarded. We do not save the file, your sets, your workout names, or your notes. Lifts you pick or sessions you type by hand are treated the same way. This does not change when you have an account.
Exercise names we could not recognize. When the report cannot match an exercise name, we store that name, one example of how it was written, and which app it came from, with no account, IP address, or upload attached to it. When you correct a guess, we store the name and your correction the same way. These are the only things an upload leaves behind, they are not linked to you or to each other, and they are what teaches Swolver to recognize the name next time. Corrections are deleted after 180 days; the unrecognized names themselves are kept, because they are the vocabulary list.
Those names are matched by an AI model. Once a night, the unrecognized names, just the names and nothing else, are sent to Anthropic's API to be matched against our exercise catalogue. Nothing that could identify a person goes with them, because nothing that could identify a person was stored with them.
What an account stores
Your email address. That is the account. There is no password: signing in means we email you a single-use link that expires in an hour, so there is no password to store, leak or reset. Your address is held by Supabase, which runs our database and sends those emails.
Your settings. Two settings, what you are training for and how measurements are shown, plus the dates the account was created, your settings last changed, and your current goal was set. Each time you change your goal we also record the new goal and the date, so there is a history of what you were training for and when.
Your training history. When you log while signed in, we store what you log. For each session: when it started and finished, its name if it has one, and which program day it was if you follow a program. For each set: the lift, the weight, the reps, whether it was a warm-up, and when you ticked it. A note you write on a lift is stored with that session. A lift you add yourself is stored with its name, its movement pattern, its equipment and the muscles you picked. A routine you save is stored with its name, its list of lifts and set counts, and which lifts are done together as supersets. If you follow a program, we store which one, the day you started it, the day you stopped, and the training maxes it runs on. If you change how long a lift rests, that length is stored against the lift. A weigh-in you log is stored with its date and weight; we do not work out a BMI or any other score from it.
Early access to Pro. A few accounts can try Pro features before Pro is sold. For those accounts only, when a stalled lift is given a change to try, we store the lift, the likely cause, the change, the number the lift needs to beat, the date to check by, and later whether it worked. It is removed when the account is. Every other account stores none of this.
Tied to your account. Every one of these records is stored against your account, and the database's own access rules let a signed-in account read or change only its own records.
Deleting part of it. Deleting a set or a session in the log removes it from the database as soon as the delete reaches us. It is not flagged or hidden. Clearing a note removes it the same way, and so does deleting a routine or a weigh-in. Lifts you added, rest lengths and your goal history have no delete control of their own; they are removed when the account is.
How long. Until you delete it, or delete the account. We do not expire accounts or training history, and we keep no copy afterwards beyond the database backups described under Deleting your account.
Never sold, never shared. Your email address is not sold, rented, or handed to advertisers, and it is not used for anything except signing you in. Your training history is not sold, rented, or handed to advertisers either.
Taking your data with you
One file, on demand. Settings has a download control that gives you everything this account holds, as JSON: your email address, your account id, when the account was created and when you last signed in, your settings, your goal history, and your training history, meaning every session, set, note, lift you added, routine, program you followed, rest length you set, weigh-in, and any check-backs from early Pro access. It is built from your own account and nothing else. Uploads are not in it because uploads are never stored.
Restoring from that file. Settings can also restore from an export. The file is read in your browser and is not uploaded or kept; its rows are sent to us in batches, checked the same way as anything you log, and added to your account, where they are kept like anything you logged. A restore never writes over what the account already has. If the file came from this same account, anything in it you have deleted since is listed first, and only what you choose comes back.
If it is ever too big. One file holds up to 200,000 records of each kind, far more than years of daily training. If your history ever goes past that, the file says it was cut short rather than leaving records out without saying so.
Deleting your account
Immediate and irreversible. Settings has a delete control. It asks you to type the word delete, and then the account record and everything attached to it is deleted from the database on the spot. Not flagged, not hidden, not queued. There is no undo. Supabase, which runs our database, keeps backups of the whole database, so a copy of a deleted account can remain in those backups for up to 7 days before they are replaced. Signing in again with the same address gives you a new, empty account.
What deletion does not touch is the anonymous exercise-name records above, because they were never connected to your account and there is nothing in them to connect. They contain no address, no identifier, and nothing from your workouts beyond an exercise name.
Export first, if you want a copy. Deleting the account deletes your training history with it, and once it is gone there is nothing left to download. The download control in Settings, described above, gives you a copy to keep.
Everything else
Rate limiting. To prevent abuse we count requests per connection for one hour using a salted, one-way hash of your IP address. That includes requests for sign-in links, so nobody can use us to flood someone else's inbox. The hash cannot be turned back into your address and is deleted within a day.
Cookies. Signing in sets a session cookie. It is marked HttpOnly, so page scripts cannot read it, and SameSite=Lax, so it does not travel to other sites. Asking for a sign-in link sets one more short-lived cookie, which is how the link knows it is coming back to the browser that asked for it. Those two are the only cookies we set, and there are none at all if you never sign in. Your unit preference is also remembered in your own browser's local storage, which stays on your device and is never sent to us.
On your device, while you log. The workout you have open is kept in your browser's local storage, so reloading the page does not lose it. Changes that have not reached us yet, because the signal dropped, wait there too and are sent when there is a connection; until then this browser holds the only copy of them. Pages from the app that you have opened are also saved on the device, and so is a copy of your log (your sessions, sets, notes, routines, programs, targets, weigh-ins and settings), which is what lets the app open and move between screens with no signal. All of this is cleared from the browser when you sign out.
Analytics. We use Vercel Web Analytics, which is cookieless and does not track you across sites. There are no other trackers.
Fonts. The typefaces are served from this site, not from a font network, so loading a page here never contacts a third party.
Who else touches this. Vercel hosts the site and provides the analytics. Supabase runs the database, keeps its backups, and sends sign-in emails. Anthropic's API matches unrecognized exercise names, as described above. Nobody else, and no advertiser.
Contact. Use the correction control in any report to tell us about an exercise name. There is no support address published yet; until there is, the controls in Settings are the way to download and delete everything an account holds.