Privacy Policy
Last updated June 3, 2026
This Privacy Notice for LeanLab (“we,” “us,” or “our”) describes how we collect, store, use, and share (“process”) your personal information when you use our services (“Services”), including when you:
- Visit our website at leanlab.dev or any subdomain of it.
- Sign in to the LeanLab web app or install it as a Progressive Web App on your phone.
- Engage with us in related ways, including responding to access-request emails.
LeanLab is a personal body recomposition tracker. It is not a public SaaS. Accounts only exist after you are explicitly approved, and we hold ourselves to a tighter standard than the law strictly requires.
Questions or concerns? Reading this Privacy Notice will help you understand your privacy rights and choices. If you do not agree with our practices, please do not use the Services.
Summary of key points
This summary highlights the most important points. Full detail is in the numbered sections below.
- What personal information do we process?
- Your name, email address, optional phone number, and the body-recomposition data you log: bodyweight, body fat estimates, body measurements (waist / hip / neck), workout sets, sleep hours, mood check-ins, and supplement logs.
- Do we process any sensitive personal information?
- Some of the data you log — body measurements, body fat — could be considered special-category data under the GDPR (data concerning health). You log this voluntarily and only ever for yourself. We never sell, share for marketing, or pass this data to third parties.
- Do we collect any information from third parties?
- No.
- How do we process your information?
- To run the app: authenticate you, compute calorie / macro / training targets, render charts, send transactional emails (magic-link sign-in, welcome email, access decisions). We do not profile you, advertise to you, or share data with advertisers.
- Who else touches your data?
- Three operational sub-processors: Supabase (database + auth + file storage), Resend (transactional email delivery), Vercel (hosting + edge compute). Cloudflare Turnstile is loaded on the sign-up form to block bots, but it does not receive any of your account data. None of these are paid analytics or advertising vendors.
- How do we keep your information safe?
- Data is encrypted in transit (TLS), access is scoped so you can only ever reach your own records, and authentication is passwordless (magic-link). We apply the principle of least privilege across our systems and review access regularly.
- What are your rights?
- You can sign in any time to view, edit, export, or delete your data. EU / EEA / UK users have the standard GDPR rights (access, rectification, erasure, portability, objection, withdrawal of consent).
- How do you exercise your rights?
- Use the Account screen in Settings (export, delete), or email us. We respond within 30 days.
Table of contents
- What information do we collect?
- How do we process your information?
- What legal bases do we rely on?
- When and with whom do we share your information?
- International data transfers
- Cookies and tracking
- How long do we keep your information?
- How do we keep your information safe?
- Do we collect information from minors?
- Your privacy rights
- Controls for do-not-track features
- Do we make updates to this notice?
- How to contact us
- How to review, update, or delete your data
1. What information do we collect?
We only collect information that you give us directly. We do not buy data, scrape data, or accept data from third-party sources.
Account information
- Name (provided when you request access).
- Email address (used as your sign-in identifier — LeanLab is passwordless and authenticates via Supabase magic links).
- Phone number (optional; not used for anything beyond reaching you if there is an access-related issue).
Body recomposition data
Everything below is logged voluntarily by you, lives in your account, and is visible only to you (and to a small set of operational sub-processors listed in §4):
- Weight logs and daily check-ins (weight, body fat %, sleep hours, mood, notes).
- Body measurements (waist, hip, neck) and optional body fat percentage (entered manually or estimated by the Navy formula from your measurements).
- Workout sessions, exercises, sets, reps, weights, rest-timer settings, notes.
- Diet logs (calories, protein, fat, carbs entered as totals per day — no food database).
- Supplement check-ins (which supplements you took on which day).
Profile preferences
Theme (dark / light / auto), units (metric / imperial), reminder schedule.
Technical information
When you use the web app we receive standard request data through our hosting provider (Vercel): IP address, timestamp, requested URL, User-Agent header. This is used for security (rate limiting, abuse detection) and is retained on Vercel's infrastructure under their terms.
We do not use third-party analytics (no Google Analytics, no Mixpanel, no Posthog). We do not use advertising pixels.
2. How do we process your information?
We process your information only for these purposes:
- Account management. Magic-link sign-in via Supabase Auth; access-request approval flow.
- App functionality. Computing your calorie and macro targets, rendering charts, projecting time-to-goal, surfacing diet-break recommendations after 12 continuous weeks of cutting.
- Transactional email. Welcome email after sign-up; access-decision email to the owner; magic-link emails delivered via Resend.
- Security and abuse prevention. Rate limiting on sign-up and authentication endpoints; Cloudflare Turnstile bot-challenge on the access-request form.
- Operating the service. Backups, error monitoring (via Sentry, with personally-identifying fields scrubbed before send), and performance debugging.
We do not profile you, automatically make decisions about you, sell your data, share it for advertising, or use it to train AI models.
3. What legal bases do we rely on?
For visitors in the EU / EEA / UK, the GDPR / UK GDPR require us to declare a lawful basis for each processing purpose:
- Contract (Art. 6(1)(b)) — running the Service you asked us to provide.
- Legitimate interest (Art. 6(1)(f)) — keeping the Service secure and abuse-free (rate limiting, Turnstile, Sentry).
- Consent (Art. 6(1)(a)) — for the body-recomposition data you choose to log. You can withdraw consent at any time by deleting individual entries or by deleting your entire account.
- Explicit consent under Art. 9(2)(a) for health-related data (body fat, measurements).
- Legal obligation (Art. 6(1)(c)) — if we are compelled by valid legal process to retain or disclose specific records.
5. International data transfers
LeanLab is operated from Norway, but the operational sub-processors listed in §4 are US-headquartered companies and may process or store your data on infrastructure outside the European Economic Area (EEA). Where data leaves the EEA, the transfer relies on a lawful safeguard under Chapter V of the GDPR.
| Sub-processor | Hosting region | Safeguard |
|---|---|---|
| Supabase | EU region (your database + storage are provisioned in an EU data centre) | EU hosting; Standard Contractual Clauses for any US-based support access |
| Vercel | Global edge; functions pinned to an EU region | Standard Contractual Clauses |
| Resend | United States | Standard Contractual Clauses |
| Sentry | United States | Standard Contractual Clauses (PII fields scrubbed before transmission) |
| Cloudflare | Global edge | Standard Contractual Clauses (challenge token only — no account data) |
Standard Contractual Clauses are the European Commission's approved contract terms for moving personal data outside the EEA. You can request a copy of the safeguard that applies to a specific transfer by emailing support@leanlab.dev.
7. How long do we keep your information?
For as long as your account is active. If you delete your account from Settings, all of your rows in our database are hard-deleted within 7 days (Supabase backups cycle through within that window). Backups are encrypted at rest and not human-accessible.
Access request rows (rejected applications) are retained for 12 months for abuse detection, then deleted.
8. How do we keep your information safe?
- Encryption in transit on every connection.
- Strict data isolation — access is scoped so you can only ever reach your own records, enforced at the database level as well as in our application code.
- Passwordless sign-in (magic-link) — no passwords for you to lose or for us to leak.
- Abuse protection — rate limiting and bot challenges on sign-up and sign-in.
- Sensitive data minimised in diagnostics — personal fields are stripped before any error report is recorded.
No system is unbreakable. If we ever experience a breach affecting your data, we will notify you and the relevant supervisory authority within 72 hours of discovery, per GDPR Art. 33.
9. Do we collect information from minors?
LeanLab is intended for adults (18+). We do not knowingly collect data from anyone under 18. If we learn we have done so we will delete the account. If you are a parent or guardian and believe your child has used LeanLab, contact us and we will act promptly.
10. Your privacy rights
If you are in the EU, EEA, UK, or Switzerland, you have the following rights under the GDPR / UK GDPR:
- Access — get a copy of your data. Use Settings → Export, or email us.
- Rectification— fix anything that's wrong. Most fields are editable directly in the app.
- Erasure — delete your data. Settings → Delete account hard-deletes everything.
- Restriction — limit further processing.
- Portability — receive your data in a structured, machine-readable format (the export gives you JSON + CSV).
- Objection — object to processing based on legitimate interest.
- Withdrawal of consent— withdraw any consent you've given, with no penalty.
- Lodge a complaint — with your national data protection authority (in Norway, Datatilsynet; in the UK, the ICO).
Users outside these regions have similar rights under their local laws and we'll honour any reasonable request.
To exercise any of these rights:
- Use the in-app controls (Account, Export, Delete).
- Or email us at support@leanlab.dev.
We respond within 30 days. We don't charge a fee. We don't require ID verification beyond confirming the request comes from the email address on the account.
11. Controls for do-not-track features
We respect Do-Not-Track signals by default — there's nothing for us to disable, because we don't run any analytics or advertising tracking in the first place.
12. Do we make updates to this notice?
We will. If we make material changes (new sub-processor, new category of data, new purpose) we will notify you by email and in-app banner at least 30 days before they take effect, so you have time to export and delete before the change applies.
Minor wording changes (typos, clarifications) will simply update the “Last updated” date above.
13. How to contact us
Email: support@leanlab.dev
If you prefer post, contact us by email first and we will share a postal address.
14. How to review, update, or delete your data
Three options, in order of speed:
- In the app — Settings → Account → edit display name, email, phone. Settings → Export → JSON + CSV of every table tied to your account. Settings → Delete account → typed-confirmation hard delete.
- By email — send a data subject access request to support@leanlab.dev.
- By complaint — to your national data protection authority if we have not resolved your concern to your satisfaction.
We treat all three the same. We respond within 30 days. We do not charge a fee.