Privacy & terms.
Plain version: we store what you give us, we don't sell it, and you can pull all of it out or delete the lot from your settings whenever you want. The detail is below.
Last updated 25 September 2026
Who's responsible
Vesthetics is a personal brand operated by its creator, who is the data controller for everything described here. For anything in this notice — access, deletion, complaints, or just a question — email support@vesthetics.io, which the operator reads, or reach out on Discord.
What we collect
Everything from “Account” down requires an account — none of it is collected unless you sign in and provide it. Browsing the public site anonymously does not create a Vesthetics account or profile. It does produce the aggregate application analytics described near the end of this list, and the hosting provider processes short-lived security and runtime logs needed to deliver and protect the site. The phone app's usage notes and crash reports, the last two items, are not linked to an account and are sent with or without one.
- Account. You sign in with Apple (in the iPhone app), Google, Kick or Twitch, or with a one-time link or code sent to your email. We store your account's email address — with Sign in with Apple, the address Apple gives us, which can be Apple's private relay — and an account ID. At sign-up the display name on your Google, Kick or Twitch profile is copied onto your account; Sign in with Apple asks only for the email. From Kick or Twitch we also store the user ID, username and subscription tier; the sub tier is re-checked periodically so gated content stays accurate.
- Fitness profile. Whatever you enter on the profile form: date of birth, sex, height, weight, body-fat percentage, country, goals, activity level, training split, dietary flags, allergies, disliked foods — and, if you choose to fill them, medications, health conditions, and menstrual cycle dates. With it we keep your timezone (so your day starts at your midnight), your language and your unit system.
- Your area. When you look for a blood draw near you or fill the grocery cart, the city you type — or, on the website, the position your browser gives when you allow it — is turned into a city label, and only that label is stored on your profile, to rank labs and grocers near you. The position itself is discarded once the city is found. The phone app asks for no location permission.
- Connected wearable data. If you connect a supported source — Whoop, Strava, Fitbit, Oura, or Polar on the web; Apple Health through the iOS app; or Health Connect through the Android app — we store private daily aggregates such as recovery or readiness, strain or activity, heart-rate variability, resting heart rate, sleep, respiratory rate, wake time, weight, steps, and active energy when the source provides them. From Apple Health or Health Connect, and only for each category you separately allow, this can also include the day's food totals your nutrition tracker logs (energy, protein, carbohydrate, fat) and the day's latest blood-pressure reading; from Apple Health only, your waist measurement. For optional V League verification, we also store a narrow workout or sleep proof: provider record ID, start/end time, duration, source app or device, and recording method. We do not store workout routes, raw location, or sleep-stage streams for League scoring.
- Lab results. If you upload a blood panel, we store the file and the marker values read out of it.
- Activity in the app. Check-ins, training sessions and sets, meal plans, protocol check-offs, recipes and questions you submit, and your conversations with the AI coach. From these, Vesthetics also keeps a short record per account of product outcomes — a check-in saved, a training session finished, a plan step done or passed, a plan changed, a baseline set, a question shown to you and whether you answered it — and counts how often you use the coach and V's reads, to enforce the daily limits. The outcome record is linked to your account, is used to see whether the plan works and to improve the product (product analytics, never advertising), is in your export and is deleted after 90 days.
- Optional V League. If you opt in, we store your chosen public nickname and tag, and publish only that handle with your aggregate seasonal points, division, and rank. Your profile identity and the individual wearable evidence behind the score remain private.
- Optional Vanguard. Verified Kick and Twitch memberships, gifted-subscription events, gift receipts, KICKs sent, and a maximum of one linked participation signal per tracked live broadcast may be stored in a private event ledger. If you opt into Vanguard, only your chosen public handle, aggregate Support XP, category totals, division, rank, and earned collectibles are published. Provider identifiers and event records remain private.
- Progress Wall. If you choose to submit, we store the photo, caption, moderation result, and optional profile display name. Location and other embedded metadata are removed before storage. Photos remain private unless V approves them for the public wall.
- A photo for the stream. If you send V a photo for the stream, we store it with its optional caption for 7 days, after an AI safety check by Anthropic. Embedded metadata such as location is removed. It is shown on the live broadcast only if V chooses to feature it, and deleted after 7 days either way.
- Duels, Respect and your invite. If you challenge another member or accept a challenge, we store the two of you, the measure and window you chose, your two counts and the result. When you give respect to another member's day, session or Wall post, we store who gave it, to whose item, and when; the owner sees how much came in, never from whom. If you open your invite page, we store that it is open and whether it may show your active days and full weeks, and whether your duel partners may see your days.
- Your milestones on V's stream. If you turn on “Show my milestones on V's stream”, we store that choice. While V is live, a full week, a set PR or a comeback of yours may then be queued as a short on-stream card showing your League handle and the milestone, never a weight, a lift, a photo or health data; the queue keeps which milestone and when it was shown, and deletes each entry after 14 days. With the choice on you may also appear in Sunday Standings with your full weeks and active days. Separately, when you finish a session while V is live we count it toward “trained with V”: a number on stream, never your name, and the mark is deleted after 35 days.
- Reports and blocks. If you report a Wall post or a member you met through Duels, we store the report, its reason, your optional note, and what the operator decided. If you block a member, we store the block so their posts and challenges stay away from you.
- Train with V. Joining the optional room count stores your account ID, shared-session ID and a short presence expiry. Other members see only the aggregate count. Presence expires within 45 seconds without an active room heartbeat; expired rows are scheduled for deletion every five minutes. Leave removes your entry immediately. It does not verify a workout or award rank. V separately chooses whether to share exercise, set progress and rest for a session, for up to two hours; this does not expose members’ workouts or health data. Your own presence and sharing record are included in your account export and removed with your account.
- Notifications. If you enable push, the browser subscription endpoint needed to deliver it, or in the phone app the push token your phone gives the app (the address Expo delivers to), stored with your account, plus your timing preferences. The token is deleted when you turn notifications off or delete your account. If you separately opt into the daily email signal, we store the verified account email, delivery time, timezone, consent record, and unsubscribe status.
- Purchases. If you buy a membership in the phone app, Apple or Google takes the payment and RevenueCat records the purchase under your account's ID. We keep the membership you hold (which store, which product, trial or paid, when it ends, whether it is a founding one), the store's notices about it so none is applied twice, and whether you ever held the founding year. A web membership is sold by Stripe; we keep its status and plan. We never see a card. The terms are under Subscriptions below.
- Analytics. Aggregated page-view statistics via Vercel Web Analytics, plus daily first-party request counts when a campaign link chooses the live destination. The Vesthetics growth table contains only a signed opaque distribution code or
unknown, controlled campaign labels, the chosen provider, live state, and a daily count. The application does not copy an IP address, browser identifier, referrer, cookie, account ID, or individual request history into that table, and its rows expire after 400 days. These counts may include link previews or automated requests and are not a count of unique people. A “Get the app” link (/get or /r/…) is counted the same way: one daily count per place the link was printed and the store it led to, with no IP address, user agent, cookie or account ID stored; known link previews and crawlers are left out of that count. No advertising profile or cross-site tracking is created by Vesthetics. - How the phone app is used. The iPhone and Android app sends Vesthetics short notes about its own use: that it was opened, which first-run screen was reached, that your plan was shown, an account created, a consent answered, the paywall seen, a trial or purchase made, a day closed, a workout finished, a check-in filed, a coach message sent, a share sheet or a notification opened — and your answer to the optional “Who sent you?” question. Each note is a fixed word from a list, never text you typed and never a number, so no weight, dose or other health value is in them. This is first-party, anonymous audience measurement: the notes carry a random install ID the app makes for itself (not a device or advertising identifier), the phone type and app build — and no account ID. They are not linked to your account, whether you are signed in or not, and are counted by install only. (The account-linked product outcomes under “Activity in the app” are a separate record, and are not these notes.) (A signed-in app also shows its sign-in so that Vesthetics's own test phones can be left out of the counts; your account is not stored with the notes.) They go to Vesthetics alone, never to an analytics company, are not used for advertising or tracking, and are used only to see where people get stuck and whether they come back. Our legal basis is legitimate interest in knowing whether the app works (GDPR Art. 6(1)(f)). The notes are kept 13 months. Because they name no account, they are not in your account export; when you open account deletion from the app, the app asks for its install's notes to be deleted and starts a new install ID. When you save your plan, your “Who sent you?” answer is also kept on your profile.
- Diagnostics. When the phone app hits an error or crashes, it sends Vesthetics a crash report so the problem can be found and fixed. A report holds the error's name; its message, with email addresses, IDs, long numbers and the parameters of any link removed, cut to 300 characters; where in the app's code it happened (file, line and column only); which screen was open, by its route name and never its contents; the app version and build, the phone's platform, system version and model, and the app's language; whether someone was signed in, as yes or no; and whether the app closed. It also carries a random ID the app makes for crash reports alone, which we keep only as a one-way hash, to count how many installs one error reached. A crash report carries no account ID and no health data, and it is not linked to your account, whether you are signed in or not. It goes to Vesthetics alone, never to a crash-reporting company. Our legal basis is legitimate interest in keeping the app working (GDPR Art. 6(1)(f)). If you let your phone share analytics with app developers, Apple or Google may also show us their own crash reports for the app.
Health data, specifically
Connected wearable metrics, lab results, medications, conditions, and cycle data are “special category” data under UK/EU GDPR. We process them on the basis of your explicit consent, given by choosing to enter them or connect the integration. They are used only to generate your own targets, recommendations, and coaching — never to build a profile for anyone else, and never shared with advertisers or data brokers.
The native app also uploads a narrow record of each workout and sleep session it reads: when it started, when it ended, how long it ran, whether it was recorded actively or automatically, and which app and device it came from. That record is what makes a League claim provable. It also keeps a random ID per phone for its health sync, stored with your account, so the same batch is never applied twice. Raw samples, routes, sleep stages and heart-rate series are not uploaded or stored by Vesthetics. The one exception is V's own: while he streams, his phone can relay his live heart rate to the broadcast, and only the latest reading is kept. That relay works on V's account alone, never on a member's. Health access is optional and can be withdrawn in Apple Health or Health Connect settings.
Your protocol rail and the coach. Anything you add to your own protocol — supplements, prescriptions, hormones, peptides, anything — is sent to Anthropic, the model provider behind the coach, as part of every coaching conversation. It is sent by name and category, never with your dose or your timing, and it is sent so the coach stops recommending what you already take and stops talking past what you are on. Anthropic processes it to answer that turn and does not train on it. If you would rather it never left, do not add it to the rail — the rest of the app works without the coach.
Asked before the AI runs. On the website and in the current app, nothing of yours goes to Anthropic for the coach, a meal photo estimate, a lab scan or V's take on your labs until you say yes on the screen that explains it. An older installed version of the app does not ask yet: update it to get this choice there. “No thanks” leaves everything else working. You can take the yes back at any time in Settings → Account (on the website) or Account (in the app); every answer you give is kept with its date so it can be shown.
V's private check-in. Once a day the service looks at your own recent logs for four patterns: food logged well under a safe floor on most days of a week, weight falling more than 1% a week for three weeks, training every day for three weeks, and pain reported on three days of a week. It also notes a blood-pressure reading in the range where V already pauses hard training. When one holds, it keeps only which pattern and the dates — never the numbers — and the phone app shows you one calm card with a way to your plan, the coach and free help lines. Only you and the operator see it. While it is open, V's AI coach is told which pattern it is (never the numbers), so that it answers with care. It is never shown to another member, never ranked and never blocks anything. It is in your export and deleted with your account, and if you say no to health data it stops.
You can withdraw that consent at any time by deleting the data or your account. Withdrawing doesn't undo processing that already happened, but it stops all of it going forward.
Who else processes it
We use these providers to run the service. Each one only receives what its job requires.
- Supabase — database, authentication, and file storage. Holds everything listed above.
- Vercel — hosting and privacy-focused Web Analytics. Like other hosting infrastructure, Vercel also processes security and runtime request logs, which can include an IP address, user agent, request path, and search parameters for the retention period of the active hosting plan and observability configuration. Vesthetics does not add those fields to its growth-attribution database.
- Resend — delivers Vesthetics' emails to your account address: sign-in links, notices about a membership (a web membership starting, failing to renew, ending or being withdrawn from, and the day-12 reminder before an app trial is charged when no phone of yours is registered for notifications), and the optional daily email signal to people who explicitly switch it on.
- RevenueCat — records the App Store and Google Play purchases made in the phone app under your account's ID, and tells Vesthetics when a membership starts, renews, ends or is refunded. The stores themselves take the payment; RevenueCat and Vesthetics never see the card.
- Anthropic — powers the AI coach, recipe recommendations, lab read-outs, and moderation of submitted content, including a safety check of Progress Wall photos and of photos sent to the stream. Meal Swipe sends only the chosen meal photo and food hint for a nutrition estimate. Vesthetics processes that photo transiently and does not retain it. Reviewed meal records remain private, appear in your account export and are removed when you delete them or your account. Photo estimates do not verify consumption, ingredients or allergens. Only information relevant to that request is sent. Under Anthropic's current retention policy for its commercial API, what it receives — including a meal photo — is deleted on its side within 30 days, unless it must keep it longer to enforce its usage policy or to comply with the law, and it is not used to train Anthropic's models.
- Stripe — takes web payments as the seller of record through Stripe Managed Payments: the card, the receipt, tax, refunds and withdrawals. Vesthetics never sees the card.
- Expo — relays the push notifications the phone app shows, using the push token your phone gives it.
- Kick and Twitch — sign-in and subscription verification.
- Whoop, Strava, Fitbit, Oura, and Polar — optional web-connected sources used only when you grant access. Vesthetics receives the daily summaries and narrow League evidence described above when each provider makes them available; it does not receive workout routes from these integrations.
- Apple Health and Health Connect — optional on-device sources used by the corresponding native app only when you grant access. Vesthetics uploads the resulting daily aggregates to your private account, and with them the narrow workout and sleep record described above — for everyone who grants access, not only for members of V League, and after rejecting manual or unknown entries. It does not upload routes, raw location, or sleep-stage streams.
- Mux — video hosting and playback for library and prep videos.
- Google / YouTube — used by the channel owner to archive streams. This does not involve viewer data.
Your rights
Under GDPR you can access, correct, export, delete, or restrict your data, and object to how it's processed. Two of those are self-serve and immediate:
- Export. Settings → Download my data gives you everything we hold, as JSON.
- Disconnect. Settings → Platform access revokes Vesthetics' stored Kick, Twitch, Whoop, Strava, Fitbit, Oura, or Polar access. Streaming disconnects stop subscription checks without cancelling the subscription. Wearable disconnects stop future imports and delete that provider's imported daily summaries and private League evidence without changing the raw data held by the provider.
- Delete imported device-health data. In the companion app, the Apple Health or Health Connect card can permanently delete that source's stored daily summaries and League evidence. Raw device records and system permissions are unchanged; syncing again reimports up to 30 days.
- Delete. Delete my account permanently removes your profile, subs, wearable data, labs, training log, meal plans, League identity, notification settings, and community submissions. Uploaded lab papers, Progress Wall photos, recipe images, questions, and any cookbook copy made from your recipe submission are erased too.
For anything else, email support@vesthetics.io or ask on Discord. You also have the right to complain to your local data protection authority.
How long we keep it
Account data lives until you delete your account. Database deletion is immediate and irreversible — there is no soft-delete or recovery window, so export first if you want a copy. Associated uploaded files are removed immediately when Storage is available and remain in a private retry queue until deletion is confirmed if it is temporarily unavailable.
The phone app's anonymous usage notes are kept 13 months and then deleted by a daily sweep, or sooner when the app asks for its install's notes to be deleted on the way to account deletion.
The phone app's crash reports are kept at most 90 days; the one-way hash of an install's crash-report ID until 90 days after that install last reported the error; and the counts for each error (how many reports, from which builds) until 13 months after the error was last seen.
The account-linked product outcomes are deleted after 90 days, a photo sent to the stream after 7 days, a queued stream milestone after 14 days and a “trained with V” mark after 35 days.
Unsubscribing stops the daily email immediately. The disabled preference remains attached to your account so the site honours the opt-out; deleting the account removes it.
Deleted data can persist for a short time in our database provider's routine encrypted backups before those rotate out. We don't read them and can't selectively edit them.
When someone may be in danger
What V's coach does when a message says someone may be in danger is on its own page, the crisis protocol. The short version of this notice for health data, for members in US states with consumer health data laws, is the consumer health data notice.
Not medical advice
Vesthetics produces calorie targets, macro splits, training suggestions, and commentary on lab markers. All of it is general fitness information generated from what you entered — it is not medical advice, not a diagnosis, and no substitute for a doctor. Lab read-outs in particular are an aid to reading your own results, not a clinical interpretation. If a number worries you, talk to a clinician. Don't start, stop, or change medication based on anything here.
If you have a health condition, take medication, are pregnant, or have had problems such as gout or kidney disease, talk to your doctor before you change your diet or training. With a recorded kidney condition or gout, V keeps protein lower and asks you to agree your target with your doctor.
Subscriptions
Training, food, check-ins, the League and Grizzly are free and stay free. Member is the one paid plan, sold in the app through the App Store or Google Play, and on this website.
- What Member includes. 30 messages a day to V's AI coach, with a fair-use limit of 300 a month (a free account gets a trial of 10 messages in its first 14 days, and none after it), and your whole weekly review instead of its headline and one fact. The coach's safety cards are never counted and never need Member. A yearly plan also carries 2 Read credits for each paid year, each usable for a year.
- Prices. €12.99 a month or €79.99 a year, VAT included. The founding year is €59.99 a year, sold only to the first 500 founders and only until Season One opens on 7 December 2026, whichever comes first. The store, or the website's checkout, shows the price in your own currency before you confirm.
- Automatic renewal. A membership renews automatically for the same period at the same price until you cancel it. Cancelling stops the next renewal, and you keep access until the end of the period you paid for. On the App Store, cancel at least 24 hours before the period ends, or the next one is charged; on Google Play and on the website, cancel any time before it ends.
- The free trial. A yearly plan bought in the app starts with 14 days free, when the store says your account can still take a trial. During the trial you get the whole weekly review and 10 messages a day to V's AI coach; the Read credits come with the first paid year, not with the trial. Around day 12 we send a reminder: a notification to your phone or, if no phone of yours is registered for our notifications, an email to your account's confirmed address. Unless you cancel at least 24 hours before the trial ends, the first year is charged when it ends. Monthly plans and the website have no trial.
- The founding price. The founding price is kept while you stay subscribed: every renewal of that subscription is charged at €59.99. If the subscription ends — you cancel and the paid period runs out, the payments stop, or you move to another plan — the founding price ends with it, and once the offer has closed it cannot be bought again. It is not a lifetime price.
- Who you pay. In the app you buy from Apple or Google, which charge, tax and refund the purchase. On the website Stripe sells the membership as the seller of record.
- What a purchase stores. In the app, Apple or Google takes the payment and RevenueCat records the purchase under your Vesthetics account ID. We keep which store bills you, the product, whether it is a trial or paid, when it ends and whether it is a founding year, plus the store's notices about it so none is applied twice. On the website Stripe takes the payment and we keep your membership's status and plan. Nobody at Vesthetics sees your card.
- Kick and Twitch subs. A Kick or Twitch sub is separate: that platform bills it under its own terms, and it gives supporter status, not Member.
- If your membership ends, or life stops you. Every safety check stays free, and so does an event's whole safety set in the app: the runway check, the taper, race-day fuelling, the fluid and heat limits, the illness rule, the countdown and the emergency numbers where the event is. Only the personalisation Member adds stops. If a long Pause or a change in your health stops you training, billing can stop too: Google Play lets you pause, and for the App Store or the website you ask us from the app and V's team answers you personally.
How to cancel.
- App Store: iPhone Settings → your name → Subscriptions, or Account → Manage subscription in the app. App Store subscriptions →
- Google Play: Play Store → your profile → Payments & subscriptions → Subscriptions, or Account → Manage subscription in the app. Google Play subscriptions →
- Website: Settings → Account → Manage billing. Open your account →
- Deleting your Vesthetics account cancels a membership bought on the website, but not one bought in the app: only Apple or Google can cancel that, so cancel it in the store first.
- If you are writing about someone who has died, tell us and we close the account quietly. When someone has died →
Refunds.
- A purchase in the app is refunded by Apple or Google under their own rules. Request a refund from Apple → Request a refund from Google Play →
- On the website you can withdraw within 14 days of buying, under Settings → Account → Withdraw from contract: the membership ends at once, you pay only for the days you had, and the rest goes back to your card.
- A refunded membership ends, and a refunded year loses the Read credits it carried that are still unused.
Community rules
These rules cover everything members share with each other: Progress Wall photos and captions, photos sent for V’s stream, questions to V, V League and Vanguard handles, and what Crew shows. You agree to them once, before you first post — in the iPhone and Android apps and on this website. There is zero tolerance for objectionable content or abusive users.
- Yours, and agreed. Post only what is yours to share. Everyone shown in a photo must be an adult who agreed to be published. Never post someone else's private information.
- Respect. No harassment, bullying, threats, hate speech or slurs — towards members, V or anyone else. Do not pretend to be someone you are not.
- Nothing sexual. No nudity, and nothing sexual, explicit or exploitative. Fitness-focused gymwear and swimwear are allowed. Nothing that sexualises a minor, ever.
- Nothing harmful. Nothing that promotes self-harm, suicide, disordered eating, drug use, violence or anything illegal. No spam, advertising or scams.
What happens. A person approves every Progress Wall post before it is public, and automated screening checks posts, questions and handles first. Content that breaks these rules is removed, and a member who breaks them can lose the ability to post, or their account. You are told why, and you can appeal.
Report and block. Every post, question, League row and member has “Report or block”. A person reviews every report within 24 hours. A block works at once, both ways. You can also write to support@vesthetics.io.
Using the site
Keep submissions — recipes, questions, anything else — your own work and free of abuse, spam, and anything illegal. Submitted content is reviewed before it goes live, and publishing it here means you're fine with it being shown on the site and on stream. Accounts that abuse the service can be removed.
Progress photos must be yours to share. Everyone shown must be an adult who agreed to publication. Fitness-focused swimwear and gymwear are allowed; explicit, sexual, exploitative, hateful, violent, self-harm, or privacy-exposing material is not. AI assists with safety screening, but V makes the final decision.
V League participation is optional. Its score rewards capped, wearable-matched training and device-recorded sleep consistency, never purchases, gifted subscriptions, watch time, chat volume, recovery scores, or body measurements. Missing a day never creates a penalty. Removing, revising, or invalidating evidence also removes the points it earned; manipulation can remove the affected result or League eligibility. Device evidence reduces easy self-report cheating but is not a guarantee against every form of manipulation. Permanent private Momentum is separate and never decreases.
Vanguard participation is optional and separate from fitness. Support XP is derived from provider-confirmed paid membership months, gifted subscriptions sent, KICKs or Bits sent, and at most one linked presence signal per tracked broadcast. Receiving a gift can unlock a collectible but does not create supporter XP. Duplicate, refunded, reversed, fraudulent, or incorrectly attributed events can be removed from the score, and abuse can remove public-ranking eligibility. No purchase improves health guidance, Momentum, or V League results.
Provider-confirmed support events and linked live presence can also trigger one randomized cosmetic-title roll. Paid support never mints Volts; a linked chat message on Kick while V is live is the one stream event that does. Paid and free event types have different odds, which are printed on the Vanguard page; Supply Crates print their own rarity and duplicate-scrap rates in the Locker. These rewards never change fitness points, division, access, or coaching, and titles or rerolls are not sold as separate products.
Subscriber features depend on an active Kick or Twitch sub, which is billed by those platforms under their terms, not ours. If a sub lapses, gated content locks again. The site is provided as-is and may change or break; we don't guarantee uptime.
Trademarks
Kick, Twitch, Whoop, Discord, YouTube, and other third-party names and logos belong to their respective owners and are used only to identify and link to those services.
© 2026 Vesthetics. All rights reserved.
