Privacy Policy
Last updated: 2026-09-19
What we collect
- Account: email, display name (via Clerk).
- Training data: training maxes, every logged set (weight × reps × RPE × date), prescriptions, mesocycle progress, readiness check-ins, deload events, volume ledger, exercise-to-canonical-lift mappings.
- Connector tokens: if you connect Hevy or another logging app, we store the OAuth/API token encrypted at rest (AES-256-GCM) to fetch your sets. Tokens are never exposed in plaintext to the client.
- LLM context: when you use the custom-program generator or importer, the text you provide and a small slice of your engine state are sent to Anthropic's API. Anthropic does not train on data sent via their API (per their published policy).
- Community: only if you turn on a public profile. Your nickname, the avatar you pick from our set (we don't accept photo uploads), your posts, comments, likes, follows, blocks, and reports, plus the date and version of the consent you gave when you went public.
- Server logs: standard request metadata for debugging and abuse-prevention (IP, user agent, timestamps). Retained 30 days.
What we don't collect
- No ad-network tracking.
- No third-party analytics SDKs in the client beyond what Clerk uses for auth.
- No selling of user data to anyone, ever.
What Community makes public
Your profile is private until you turn it on, and turning it on is not retroactive: nothing you logged beforehand is ever published. While it's on, anyone with a LiftingLabs account can see your workouts from that point forward, the weights and reps you lifted, the day and duration of each workout, your PRs and badges, the days you logged as sick or traveling or working around an injury, and your nickname. Your real name and email are never shown.
Sick days, travel days, and injury workarounds are health information about you. We call that out separately here and in the app, and it is the reason going public takes an explicit, itemised confirmation rather than a toggle with the detail hidden behind it. We record which version of that confirmation you agreed to and when.
Three things are never published at any setting: your readiness check-ins (sleep, soreness, stress, mood), your bodyweight, and your training maxes. There is no option that publishes them.
Turn the public profile off and your profile and posts leave the feed immediately. They're hidden rather than deleted, so they return if you go public again. Deleting a post, or your account, removes it. We can't reach anything someone else has already screenshotted or saved, which is true of anything published anywhere.
Why we have it
All of it powers the engine: prescriptions, autoregulation, volume tracking, deload detection. Without your training data, there's no product. Connector tokens let us pull new sets without you re-pasting them. LLM context is needed only for the structured tools that parse pasted program text or map unfamiliar exercise names.
Who else sees it
- Hosting / DB: Vercel (Next.js), Neon (Postgres), Clerk (auth). Each processes data on our behalf under their respective DPAs.
- LLM: Anthropic, for the custom-program generator and program-importer calls.
- Connectors: Hevy (and future-added providers). We only request the OAuth scopes needed to read your sets.
Other lifters, but only what a public profile publishes, and only if you turned one on. See “What Community makes public” above. Everything else on this page is visible to you and to the processors listed here, and to nobody else using LiftingLabs.
We don't share with marketers, brokers, or advertisers.
Your rights
- Export: in the app, Settings → Your data → Export my data. A full JSON dump of every row keyed to your user ID. Connector tokens return as length-only metadata, not cleartext.
- Delete: in the app, Settings → Delete account. Permanently removes all rows on confirmation, including your posts, comments, likes, and follows, and your Clerk sign-in. Backups age out within 30 days.
- Disconnect a connector: in the app, Settings → Hevy → disconnect. The encrypted token row is deleted; we stop syncing.
- Correct: training data is editable in-app. For account fields (email, name), update via Clerk.
No app access? Email info@liftinglabs.app and we'll handle any export or deletion request.
Security
TLS in transit, encryption at rest, AES-256-GCM for connector tokens with key rotation tooling. Auth via Clerk (industry-standard session + JWT). No plaintext secrets in client bundles.
Contact
Privacy questions, data-subject requests, or anything else: info@liftinglabs.app.