Privacy Policy
Vita (iOS app) and 100old.app (web)
01Overview
Welcome to Vita (the "App", "we", "our", or "us"). Vita is a personal health-tracking iOS app, with a companion web experience at 100old.app. Our guiding principle: your health data belongs to you — we are just the tool that helps you see it more clearly.
This Privacy Policy explains what we collect, how we use it, how we protect it, and what rights you have. It applies to both the iOS app and the web application.
02Data Controller
The App is currently operated by an independent developer rather than a corporate entity. For purposes of the EU General Data Protection Regulation (GDPR), the China Personal Information Protection Law (PIPL), and the Hong Kong Personal Data (Privacy) Ordinance (PDPO), the "data controller" is the operator of the App.
Please direct any privacy-related correspondence (access, correction, deletion, consent withdrawal, complaints, etc.) to the contact details in Section 14.
03Information We Collect
3.1 Information You Provide
- Account credentials: email address and password (stored as a salted hash — we cannot see the plaintext). Future releases will offer Sign in with Apple and Google Sign-In as optional authentication methods; when you use one of these, we receive the identifier and email returned by that provider (see Section 6).
- Profile: display name, date of birth, gender, avatar image, and health goals. All fields are optional and editable anytime in "Profile".
- Avatar image: compressed on-device to a 256-pixel JPEG and stored directly in the database as a base64 data URL (not in object storage).
3.2 Data You Authorize from Third Parties
When you choose to connect an external data source, the App will, on your behalf, retrieve the data you have authorized:
- WHOOP (via OAuth 2.0): daily cycles, sleep stages, workouts, recovery score, HRV, resting heart rate, blood oxygen, respiratory rate, and skin temperature. After authorization we sync the most recent 3 days hourly. You can revoke our access from your WHOOP account at any time.
- Apple Health (HealthKit): the iOS app reads your Apple Health data through HealthKit. Reads only happen after you explicitly grant permission via the iOS system prompt; each data type can be approved or denied individually. See Section 5 for the specific types. HealthKit read access will coexist with the legacy "Apple Health Auto Export push" channel during the transition period and will eventually fully replace it.
3.3 Information Collected Automatically
- Device and session: session tokens, device model, OS version (for diagnostics and session continuity).
- Usage records: questions and answers from your chats with the AI insight feature (saved into "Memory" so you can review them), photographed meals you log, journal entries you write. These are content you actively create.
We do not integrate any third-party analytics, advertising, or behavioral-tracking SDK (no Google Analytics, no Sentry, no Facebook SDK, etc.).
04How We Use Information
We use the information described above only for these purposes:
- Provide core features: render your health visualizations, surface trends, and compute sleep / training metrics — within your own account.
- Personalized AI insights: send relevant snippets of your health data together with structured prompts to our model provider to generate personalized suggestions for you (see Section 6).
- Account management: authentication, password reset, session continuity.
- Service operations: diagnostics, performance monitoring, security.
We do not use your data for advertising, behavioral profiling, sale or sharing with third parties, training general large language models, or any purpose not explicitly disclosed here.
05Health Data Statement
Our explicit commitments
- We will never use your health data for advertising, marketing, or behavioral profiling.
- We will never sell your health data to data brokers or any third party.
- We will never back up health data to non-Apple cloud storage (e.g. Google Drive, Dropbox) or sync it to any third-party service without your authorization.
- You can disconnect WHOOP from "Profile → Data Sources" or revoke our access from your WHOOP account at any time.
- You can request export or permanent deletion of all your health data at any time via Section 9.
HealthKit integration and permission scope
Vita uses HealthKit to read health data you authorize. All reads go through Apple's HKHealthStore API and are gated by iOS system-level permission. You can review and revoke authorization per data type at any time in Settings → Health → Data Access & Devices → Vita.
HKObjectType read permissions we plan to request:
- Activity: stepCount, distanceWalkingRunning, distanceCycling, distanceSwimming, flightsClimbed, activeEnergyBurned, basalEnergyBurned, appleExerciseTime, appleStandTime.
- Cardio: heartRate, restingHeartRate, heartRateVariabilitySDNN, oxygenSaturation, respiratoryRate, vo2Max, bloodPressureSystolic / Diastolic.
- Body measurements: bodyMass, bodyMassIndex, bodyFatPercentage, height, bodyTemperature, appleSleepingWristTemperature.
- Sleep: sleepAnalysis (with stages), sleepDurationGoal.
- Nutrition: dietaryEnergyConsumed, dietaryProtein, dietaryFatTotal, dietaryCarbohydrates, dietaryFiber, dietarySugar, dietaryWater.
- Reproductive health: menstrualFlow, cervicalMucusQuality, ovulationTestResult.
- Workouts: HKWorkoutType (sport_name, duration, heart rate, energy, distance).
Write permissions we plan to request: dietaryEnergyConsumed and dietaryWater only — written back when you log food via Vita's nutrition feature. No other types are written.
The authoritative permission list at any point in time is the NSHealthShareUsageDescription / NSHealthUpdateUsageDescription in Info.plist of the released build. We follow the principle of least privilege: we only request the types we display or analyze.
WHOOP data
Once you connect WHOOP, a Vercel Cron job pulls the most recent 3 days of data from the WHOOP API every hour and stores it in our database. The data is used solely to power your in-app visualizations and personalized analysis.
Transition: Apple Health Auto Export (deprecating)
Users who already use the third-party Apple Health Auto Export app to push data to 100old.app may continue doing so during the transition. That app is maintained by a third party outside of the Vita team; its source, push frequency, and field scope are configured by you within that app — please consult its own privacy policy. Once direct HealthKit read access is fully rolled out, we will stop accepting new pushes via that channel.
06Third-Party Services
The App relies on the following third-party services. Each receives only the data necessary for its function.
Supabase (authentication + database)
- Purpose: user authentication and database hosting.
- Data location: Supabase Inc. (United States); the PostgreSQL instance is hosted in the Northeast Asia (Tokyo) region.
- Data scope: account email, password hash, profile fields, and all health data.
- Link: supabase.com/privacy
Vercel (web hosting)
- Purpose: serverless hosting for the web frontend and API routes.
- Data location: Vercel Inc. (United States).
- Data scope: HTTP request metadata (IP, User-Agent). Vercel does not see application-level health data in plaintext.
- Link: vercel.com/legal/privacy-policy
WHOOP (health data source)
- Purpose: after your OAuth authorization, read the WHOOP data within scope.
- Data location: WHOOP, Inc. (United States).
- Scopes: recovery, cycles, sleep, workout, profile, body measurement, offline (token refresh).
- Link: whoop.com/legal/privacy
Shengsuanyun (AI model routing)
- Purpose: forwards prompts via an OpenAI-compatible API. Text analysis uses DeepSeek (deepseek-v4-flash primary / minimax-m2.7 fallback); nutrition photo recognition uses OpenAI (gpt-5.4-mini, gpt-4o fallback).
- Data flow: routed via the Shengsuanyun (mainland China) API gateway to the third-party model providers DeepSeek and OpenAI.
- Scope of data sent: your display name, year of birth (for age), gender, health goals, and the slice of health data relevant to the prompt (e.g. last 7 days of daily_cycles, the photographed meal). We never transmit your email, password, device identifiers, or the full database.
- Use limits: this data is used only to generate your results in real time and is never used to train models, never sold, and never used for advertising. We send data to these providers only after you explicitly consent in-app; the providers are bound by their terms to give your data protection equal to or comparable with this policy.
- Link: router.shengsuanyun.com
Apple (App Store distribution + Sign in with Apple)
- Purpose: iOS app distribution and optional authentication (Sign in with Apple).
- Data location: Apple Inc. (United States).
- Data collected: when you choose Sign in with Apple, we receive a stable Apple ID user identifier and your email address (you may choose to hide it using Apple's relay email) plus the name you elect to share.
- Link: apple.com/legal/privacy
Google Sign-In (planned)
- Purpose: optional authentication using a Google account.
- Data location: Google LLC (United States).
- Data collected: Google account email, display name, avatar URL, and stable Google user ID. We do not read your Gmail content, contacts, calendar, or any other scope.
- Link: policies.google.com/privacy
07Storage & Retention
- Location: account and health data live in a Supabase PostgreSQL instance in the Tokyo region; backups are managed by Supabase per their platform policy.
- Retention: kept for the lifetime of your account; on account deletion we permanently purge all health data and account records within 30 days (rolling backups may briefly retain remnants for up to 60 days).
- WHOOP tokens: stored encrypted in the
settingstable; used solely to refresh data on your behalf; deleted immediately when you disconnect.
08Security
- Passwords are stored using bcrypt hashing (via Supabase Auth) — we cannot see your plaintext password.
- All client–server traffic uses TLS 1.2+.
- The database enforces Row-Level Security (RLS): every user can only access rows scoped to their own user_id.
- On iOS, access tokens are kept in the system Keychain. Server routes only accept requests with a verified Bearer JWT.
- API endpoints are user-isolated: unauthenticated requests are rejected; cross-user access is blocked by RLS.
No security control is absolute. In the event of a data breach we will notify affected users and applicable regulators within 72 hours as required by applicable law.
09Your Rights
Rights for all users
- Access: view all profile data we hold inside the in-app Profile screen.
- Correct: edit name, gender, DOB, goals, and avatar directly in the app.
- Export: email us via Section 14 and we'll deliver a machine-readable (JSON) export of your account data within 30 days.
- Delete: use the in-app "Sign out + Delete account" flow, or request deletion by email.
- Withdraw consent: disconnect WHOOP or Apple Health at any time.
Additional GDPR rights (EEA users)
- Rights of access, rectification, erasure ("right to be forgotten"), data portability, restriction of processing, objection.
- The right to lodge a complaint with your local EU member state supervisory authority.
Additional CCPA / CPRA rights (California users)
- Right to know, right to delete, right to non-discrimination.
- We do not sell or share your personal information for cross-context behavioral advertising, so the "Do Not Sell or Share My Personal Information" option is not applicable by default.
Additional PIPL rights (mainland China users)
- Health data qualifies as "sensitive personal information" under PIPL. The app presents a one-time consent on first launch; declining does not block basic features but disables certain insight analyses.
- You have the right to access, copy, correct, and delete your personal information, and to withdraw consent.
- You may lodge a complaint with the Cyberspace Administration of China (CAC) or other relevant authorities.
10International Data Transfers
To deliver the App your data may be transferred across borders — for example, account data stored in Japan (Supabase), the web frontend served from the United States (Vercel), AI prompts processed in mainland China (Shengsuanyun). Where transfer to a "third country" under GDPR is required, we rely on applicable Standard Contractual Clauses (SCCs) or on the provider's existing adequacy mechanisms.
11Children's Privacy
The App is intended for users aged 13 and older. If you are under 13, please do not register or submit any personal information. If we discover that we have inadvertently collected information from a child under 13, we will delete it promptly.
13Changes to This Policy
We may update this policy from time to time (for example: a new third-party service, enabling HealthKit, expanding data scope). For material changes we will surface a prominent in-app notice and advance the "Effective date" to the date the change takes effect. Continued use after that date constitutes acceptance of the updated policy.
14Contact Us
For questions about this policy, exercising your rights, or to submit a complaint:
- Email: privacy@100old.app
- Web: 100old.app
We respond to requests within 30 business days; identity verification may require additional information.
15Apple Privacy Label Mapping
The table below corresponds to the Privacy Nutrition Label fields in App Store Connect.
| Category | Collected | Linked to User | Used for Tracking | Purpose |
|---|---|---|---|---|
| Contact · Email | Yes | Yes | No | App Functionality, Authentication |
| Contact · Name | Yes (optional) | Yes | No | App Functionality |
| Health & Fitness | Yes | Yes | No | App Functionality, Personal Analytics |
| User Content · Photos | Yes (avatar, meal photos) | Yes | No | App Functionality |
| Identifiers · User ID | Yes | Yes | No | App Functionality |
| Diagnostics | Yes (server logs) | No | No | App Functionality |
When subscription billing, third-party analytics SDKs, or any other new data flow is introduced, this table will be updated accordingly.