Privacy Policy
Last updated: 8 October 2026
1. Who we are
twyn.life ("twyn", "we") is a personal health data platform operated by Oleksii Lazorenko as an individual, currently in beta. twyn is a system of record and an educational tool, not a medical device or a healthcare provider. Nothing in the product — including AI-generated summaries, biological-age estimates, genetics-vs-reality scores, or coach responses — is a diagnosis or a treatment recommendation; always consult a qualified clinician before making health decisions. For anything related to your data, contact hello@twyn.life. For the purposes of the EU General Data Protection Regulation (GDPR), Oleksii Lazorenko is the data controller.
2. What data we collect
Data you provide
- Account data — email address, name, authentication identifiers.
- Health data — laboratory results, medical records, wearable and tracker measurements (sleep, heart rate, activity and similar), supplement and medication lists, genetic data files, nutrition logs, diary notes, goals, and profile facts (such as date of birth and biological sex). This is special-category data under Article 9 GDPR — see "Legal basis and consent" below for exactly how and when you consent to it.
- Connected device data — if you connect Oura, WHOOP, or another wearable account, we collect only the categories you authorize through that provider's OAuth flow. For Oura this may include sleep, readiness/activity summaries, heart-rate data, workouts, and SpO2, depending on the scopes you approve. For WHOOP this may include recovery, cycles/strain, workouts, sleep, profile, and body-measurement data depending on the scopes you approve.
- Waitlist data — the email address you submit on the landing page.
- Payment data — if you subscribe to a paid plan (including a Coach free trial, which asks for a card at checkout), the name, email, and payment details you give directly to Creem, our Merchant of Record. twyn never receives or stores your card details; see "Where your data lives" below.
Data collected automatically
- Technical data — IP address, browser type, and basic usage events needed to run, secure, and improve the service. We do not use advertising trackers and we do not sell data — to anyone, ever.
- Campaign attribution — if you sign up through one of our campaign links, we record which campaign it was (the link's invite code and campaign tags, such as the ad or post it came from) with your account, to measure which campaigns work. Nothing is stored on your device for this, and we never use advertising pixels. It is part of your export and is deleted with your account.
- Product analytics & error monitoring — see "Cookies & analytics" below for exactly what is collected, which processors see it (PostHog, Sentry, Vercel), and how Do Not Track / Global Privacy Control apply.
3. How we use your data
- To provide the service: store, normalize, and display your health data back to you.
- To expose your data to AI agents you connect via MCP: data is only accessible with personal access tokens that you issue and can revoke in Settings.
- To run AI-assisted features you invoke (lab PDF extraction, note structuring, variant annotation, the in-app coach, voice-diary transcription): relevant excerpts of your data are sent to our AI subprocessors — Anthropic, OpenAI, and Google — depending on the feature, and processed under their API terms, which prohibit training on your data. The table below states which provider handles which feature. If you add your own API key for a provider in Settings → AI & Models, that provider's calls run under your own account instead of twyn's.
- To sync connected devices you explicitly authorize (including Oura and WHOOP): we use the provider connection only to import, normalize, and show your own data back to you, and to expose it to AI agents you explicitly connect.
- To process payment if you subscribe to a paid plan: Creem, our Merchant of Record, is the seller of paid plans and handles checkout and billing — see the Terms of Service for the paid-plan terms.
- To communicate with you about the service (invites, important changes).
We do not sell your data, use it for advertising, or train machine-learning models on it. We do not use Oura, WHOOP, or other connected-device data for unrelated analytics, resale, or model training.
4. Where your data lives and who processes it
Your data is stored encrypted in transit and at rest. We use the following subprocessors — vendors who process data on our behalf, or third parties you explicitly choose to connect:
| Processor | Purpose | Data categories | Region |
|---|---|---|---|
| Supabase | Database (Postgres), authentication, and file storage — the system of record behind every feature. | Account/session data; all health data you enter or sync (labs, wearables, DNA, supplements, medications, notes, goals, and more); files you upload. | TBC |
| Vercel | Application hosting/compute, and (cookieless) Web Analytics for aggregate page-view counts. | Request metadata needed to serve the app; page-view counts (path only, no query string) — skipped entirely under Do Not Track / Global Privacy Control. | EU (Frankfurt) |
| Anthropic | AI processing for the in-app coach's apex escalation tier, plus the profile/goal/supplement structuring parsers and memory-fact extraction (Claude models). | The relevant excerpt of your data for that feature — e.g. the free text you submit to parse, the note being mined for facts, or the conversation for an apex-tier coach turn. | TBC |
| OpenAI | Default AI provider for the in-app coach's classifier/planner/simple/standard/deep routes; DNA variant summary annotation; Whisper voice-diary transcription; text embeddings that power semantic note/fact search. | Your coach conversation text (default routes); the evidence packet for a DNA variant annotation; voice-diary audio (sent for transcription only, not stored by us); note/fact text being embedded for search. | TBC |
| Gemini API — default AI provider for lab-result extraction (first pass and the QA retry) and a cross-provider fallback for some coach routes; also the optional "Continue with Google" sign-in (via Supabase Auth). | Lab document text/images you upload, for extraction; email, name, and Google account identifier — only if you choose Google sign-in. | TBC | |
| PostHog | Cookieless product analytics. | Event names and non-health properties (counts/enums only); page path with the query string and fragment stripped; an opaque account id when you are signed in. Never health values, biomarkers, lab results, DNA data, or note content. Nothing is sent at all if your browser signals Do Not Track or Global Privacy Control. | EU |
| Sentry | Error monitoring, so we can find and fix bugs. | Error messages/stack traces and a sampled slice of request telemetry. Request bodies, cookies, and sensitive headers are removed, and PII-pattern-named fields (email, token, lab, dna, medication, biomarker, and similar) are stripped before an event ever leaves your browser or our server. Your Supabase user id (a UUID) is attached when known — never your name or email. Not gated by Do Not Track / GPC: this is error/security telemetry, not marketing analytics. | TBC |
| Resend | Transactional email delivery — invites, and admin notifications for waitlist signups and feedback reports. | Recipient email address and the message content (the invite link/code, or the relevant notification text). Invite links never carry your email address in the URL. | TBC |
| Creem | Merchant of Record for paid plans — Creem, not twyn, is the seller: it runs checkout, collects payment, and issues receipts.Only if you subscribe to a paid plan. | Name, email, and payment details you give Creem directly at checkout — twyn never receives or stores your card details. Creem reports your subscription/product id and status back to twyn by webhook. | TBC |
| Oura | Wearable integration you explicitly connect.Only if you connect Oura in Settings → Devices. | The categories you authorize on Oura's own consent screen: profile, daily sleep/readiness/activity summaries, heart rate, workouts, SpO2. | TBC |
| WHOOP | Wearable integration you explicitly connect.Only if you connect WHOOP in Settings → Devices. | The categories you authorize on WHOOP's own consent screen: profile, cycles/strain, recovery, sleep, workouts, body measurements. | TBC |
| Web search backend (DuckDuckGo, or Brave Search / Tavily) | The in-app coach's tool for looking up public clinical reference ranges or guidelines. DuckDuckGo needs no configuration and is the default; the operator may instead configure a Brave Search or Tavily API key, in which case that provider is tried first.Only when the in-app coach's search tool actually runs. | The search query text the coach generates for that lookup — not your raw record. This tool is available to the in-app coach only; it is never exposed to an external MCP client. | TBC |
"TBC" means we have not yet confirmed that vendor's exact processing region against its current data-processing agreement — this is tracked as part of the founder's legal review and will be filled in here, never guessed. Where a transfer outside the EEA does occur, it relies on the EU–US Data Privacy Framework and/or Standard Contractual Clauses, as applicable to that provider.
Within the platform, your data is isolated per user account (row-level security). Raw files you upload are preserved unchanged in private storage so that your data remains portable and re-processable.
OAuth access and refresh tokens for connected devices (including Oura and WHOOP) are stored encrypted and used only to refresh your connection and sync the data you authorized. You can disconnect a provider in Settings. When the provider supports it, we revoke the provider token as part of disconnecting or deleting your account.
5. Legal basis and consent
We process your account data (email, authentication) to perform our contract with you — providing the service you signed up for (GDPR Art. 6(1)(b)).
Health, DNA, and similar special-category data (GDPR Art. 9) is processed only on the basis of your explicit consent (Art. 9(2)(a)). You give it separately from accepting the Terms and this Policy — with its own checkbox at sign-up, or on a consent screen before you first use the app if your account predates it — and we record which version of the text you agreed to and when. The consent text names the data categories, the purposes, who processes the data (including the AI providers listed in section 4) and what withdrawal does; whenever that text changes, we ask you again.
You can see your consents and withdraw the health-data consent at any time in Settings → Privacy & Data. From that moment the app stops processing your health data until you consent again: new uploads and device syncs (Apple Health, the companion app, voice notes, Oura, WHOOP) are refused, AI processing stops, and AI agents you connected through MCP lose access. Withdrawal does not affect processing that happened before it, and it does not delete what is already stored — you can export it and delete individual records or your whole account at any time (see "Your rights" below). If your account predates the consent screen, data from devices you already connected keeps arriving until you answer that screen.
Where we rely on a legitimate interest (GDPR Art. 6(1)(f)) — for example, error monitoring to keep the service secure and working — that interest is limited to operating and securing the product, using the minimized, scrubbed telemetry described in "Cookies & analytics" below.
If you subscribe to a paid plan, Creem processes your payment details as the merchant of record — the seller — under its own privacy policy; twyn never receives your card details. The subscription facts twyn keeps (your plan and billing interval, the subscription's status, the date your trial or current billing period ends, and any complimentary access) are necessary to perform our contract with you (Art. 6(1)(b)).
If you cancel using the public cancellation page (twyn.life/cancel), we also store what you submit there — your name, your account email, the email address you want the confirmation sent to, the plan the cancellation concerns, and any reason you give — to carry out your cancellation and keep a record of it. It is deleted with your account.
6. How long we keep it
Your account and the data in it are kept for as long as your account exists. Waitlist signups are kept until you are invited or ask to be removed; if you go on to create and later delete an account, we also remove any waitlist row tied to that account's email as part of deletion.
Backups: Supabase, our database provider, maintains its own backup schedule for disaster recovery as part of its managed Postgres hosting. We have not yet published a specific retention window for those backups here; deleting your account or a piece of data removes it from the live database and storage immediately (see "Your rights" below), and backups age out on Supabase's own schedule.
7. Your rights
Under the GDPR you have the right to:
- access your data and receive a copy of it (portability);
- correct inaccurate data;
- delete your data ("right to be forgotten");
- restrict or object to processing;
- withdraw consent at any time;
- lodge a complaint with a supervisory authority — in Portugal, the CNPD (Comissão Nacional de Proteção de Dados).
Export — open Settings → Privacy & Data → Export to download a complete copy of your data as one JSON file. It streams every table that stores your content — labs, wearables, DNA, supplements, medications, notes, memory facts, goals, coach conversations, and more — with no row-count cap, and includes a closing manifest listing exactly what was excluded and why. Credentials are always stripped first: your bring-your-own API keys, connected-device OAuth tokens, and MCP/ingestion tokens never appear in the file. Any file you uploaded (lab PDFs, DNA raw files, and similar) is included as a signed download link valid for 24 hours.
Deletion — open Settings → Privacy & Data → Delete account and type your account email to confirm. Deletion runs immediately, in order: any paid subscription is cancelled at Creem first, then your Oura/WHOOP connections are revoked, then every file you stored is removed, then your account and everything in it (every table cascades) is deleted. Any invite record or waitlist row tied to your email is anonymized or removed in the same step. We keep a pseudonymous deletion receipt — your account id, timestamps, and a status flag, never your email — purely to prove the deletion actually completed.
For anything else, email hello@twyn.life — we respond promptly.
8. Cookies & analytics
No advertising, analytics or cross-site tracking cookies, ever. What we do keep in your browser is first-party and functional — it remembers your language, keeps you signed in, or stops the app from repeating a step — and the table below lists all of it. Before you sign in, a visit stores nothing unless you pick a language.
| Name | When it is set | Purpose | How long |
|---|---|---|---|
| NEXT_LOCALECookie | Only when you pick a language, or open a page in a language other than English. | Remembers the language you chose. Holds only a language code. | Up to 1 year |
| sb-…-auth-tokenCookie | When you sign in. | Keeps you signed in (Supabase Auth). A large session is split into numbered parts; a short-lived “-code-verifier” companion exists only during Google sign-in. | Until you sign out (400 days at most) |
| tw_apprCookie | After sign-in, once your account is approved. | Signed note that your account has access, so the app need not ask the database on every page. | 7 days |
| twyn_consentCookie | After sign-in, once you have accepted the current consent texts. | Signed note of that acceptance, cleared the moment you withdraw consent. | 7 days |
| themeLocal storage | Only if you switch between light, dark and system theme. | Remembers your theme choice. | Until you clear site data |
| twyn.tz.capturedSession storage | Signed in only — the first page you open in a tab. | Marks that your time zone was already sent to fill an empty profile field, so it is sent once per tab. | Until you close the tab |
| twyn.billing.checkoutReturnAtLocal storage | Signed in only — when you come back from checkout. | Shows “Confirming your payment…” until your subscription is confirmed, so you are not offered a second checkout. | Removed once confirmed; expires after 30 minutes |
Product analytics (PostHog) is cookieless — session state lives in memory only and disappears when you close the page, with no analytics cookie, nothing in local or session storage, and no cross-site identifier. We record page views (path only; the query string and fragment are stripped before anything leaves your browser) and a small set of value-free product events (counts and enums only, never health values). Signed-in users are identified solely by an opaque account id, never your name or email; anonymous visitors are never profiled. PostHog runs on its EU cloud by default.
Vercel Web Analytics reports aggregate, cookieless page-view counts, also path-only.
Both are skipped entirely if your browser sends a Do Not Track or Global Privacy Control signal — the tracking script is never loaded at all. Because analytics stores nothing on your device, nothing is collected under those signals, and everything in the table above serves a feature you use rather than tracking you, no cookie-consent banner is required under this model.
Error monitoring (Sentry) is separate from the analytics above and is not gated by Do Not Track / GPC — it exists to keep the service secure and working, not to profile visitors. Request bodies, cookies, and sensitive headers are removed before an error event is sent, and fields that look like personal or health data (email, token, lab, DNA, medication, biomarker, and similar) are dropped; your account id (an opaque UUID) is attached when known, never your name or email.
9. Changes
We may update this policy as the product evolves. Material changes will be announced by email to account holders before they take effect.