Effective 7 August 2026 · previous version 2 July 2026
Short version:On this website we count page views with a single analytics tool (PostHog) and nothing else — no advertising trackers, no cross-site tracking, no session recording, and the sunlight estimator does its arithmetic entirely in your browser, so what you type into it never leaves your device. The app is different: to sync across your devices, the web app stores your profile and tracked
data in our cloud database, tied to your account. We don't sell your data or use it for advertising.
On the iOS app, sensitive on-device data (Apple Health, camera) stays on your device. You can export or
delete your data anytime.
1. Who we are
OPSIN is operated by ZHC Labs Pte Ltd (Singapore) ("OPSIN", "we", "us"). We provide a
sunlight, vitamin D and circadian light tracking app and website (theopsin.com). This policy explains
what we collect and how we handle it, consistent with Singapore's Personal Data Protection Act (PDPA)
and, where applicable, the GDPR/CCPA. Contact: hello@theopsin.com.
2. The website and the app are different
Two things live under this policy, and they behave very differently. It matters which one you're using.
This website (theopsin.com) — the science library, the guides, the methodology page,
the FAQ and the sunlight estimator on the home page. There is no account and no profile here. We use
PostHog to count page views and see which research people find useful — the same single
analytics tool we use across all our sites, so we are not spreading your data around more services than
necessary. It is configured so that anonymous visitors are never given a person profile
(person_profiles: "identified_only"), we do not record your screen or session, and we run
no advertising trackers and no cross-site tracking of any kind. We load no third-party
fonts or content-delivery assets. The estimator itself runs entirely in your browser: the city, date,
skin type and other values you choose are used to do the arithmetic on your device and are
never transmitted to us or to anyone else — we see that the page was viewed, not what
you typed into it.
The web app (app.theopsin.com) — the tracker itself. This requires an account, stores
your data in our cloud so it syncs across devices, and uses product analytics. Everything in sections 3
to 8 below is about the app unless it says otherwise.
Our hosting provider (Cloudflare) processes standard technical request data — such as IP address and
browser type — to serve pages and block abuse, as any web host must. We do not use it to build a profile
of you.
3. Data we process
Account: when you sign in to the web app, our authentication provider (Clerk) processes
your email and/or Google/Apple sign-in identity to create your account. We identify your data by your
account ID.
Profile you provide: skin type, birth year/age, optional BMI, wake and bed times,
clothing/exposure, supplement dose, goals, and preferences. Used to personalize your estimates.
On the web app, this is stored in our cloud database (see §4) under your account so it syncs
across your devices.
Activity you log: sun sessions, supplement entries, blood-test results you enter,
streaks. On the web app, stored in our cloud database under your account (with a local browser cache for
offline use).
Location: your approximate coordinates, used to calculate sun position and fetch your
local UV/weather forecast. Coordinates (or a city name you search) are sent to our forecast provider
(Open-Meteo) for this purpose.
AI coach: if you use the coach, the messages you send and a snapshot of your current
OPSIN data (scores, plan) are sent to our LLM provider (Flow AI) to generate a reply, and the exchange
may be logged for safety and quality. Don't put information in the coach you don't want processed this way.
Apple Health / device health data (iOS app, optional): with your explicit permission,
the iOS app may read data such as time in daylight, sleep, and body metrics, and write your estimated
vitamin D / light-exposure sessions back to Health. Raw HealthKit data stays on your device; only derived
aggregates sync, with consent.
Camera ("mirror" feature, iOS, optional): used on-device only to estimate light level
and exposed skin. Images are processed on your device and are not stored or uploaded.
Product analytics & error reporting: we use PostHog to understand how
features are used (pages viewed, buttons tapped, feature usage) and to capture technical errors so we can
fix them. You are identified only by your opaque account ID — not your name or email. Values you type into
forms are masked, and we do not record your screen or session. See §4.
4. Cookies and local storage
On this website: our analytics provider (PostHog) sets a first-party cookie so a
series of page views can be counted as one visit rather than many. It is used only to measure how the
site is read. We set no advertising cookies, and nothing here is shared with ad networks or used to
follow you across other websites.
In the web app: our authentication provider (Clerk) uses a session cookie to keep you
signed in — this is strictly necessary for the app to work and cannot be turned off while you're logged
in. The app also uses your browser's local storage to cache your own data for offline use; you can clear
it from your browser settings or with Settings → Reset all data.
Security: Cloudflare may set a short-lived cookie to distinguish humans from bots.
Links out to research. The library cites primary sources — PubMed, PMC, Nature, the WHO
and others. Those are ordinary outbound links: nothing is sent to them unless you choose to click, at which
point you are on their site under their privacy policy, not ours.
Our standard. We deliberately use one analytics tool across every site we run
rather than accumulating several — fewer processors means fewer places your data can go. If that ever
changes we will say so plainly here and update the effective date above before it goes live.
5. What we do NOT do
We do not sell your personal data.
We do not use your data for third-party advertising.
We do not upload raw camera images or raw Apple Health data from the iOS app.
6. Third-party processors
We use these providers to run the service; each processes only what's needed for its function:
Clerk — authentication / account management.
Railway — application hosting and the PostgreSQL database that stores your web-app data.
Cloudflare — DNS, hosting for this website, content delivery and security; processes technical request data (IP, browser type) to serve pages and block abuse.
Open-Meteo — UV/weather forecasts and geocoding (receives coordinates or a city name).
Flow AI — the LLM that powers the coach (receives coach messages + your data snapshot).
PostHog (US region) — analytics for this website and the web app; receives usage
events and errors keyed to your opaque account ID, with typed input values masked.
7. Storage, security & retention
Web-app data is stored in our cloud database (Railway PostgreSQL), associated with your account and protected
in transit and at rest by our providers' security. A copy may be cached in your browser for offline use. We
retain your data while your account is active; when you delete your data or account, it is removed from our
active database. Use the in-app export before deleting.
8. Your choices & rights
You can revoke location, camera, and Health permissions at any time in your device/browser settings.
You can export your data (Settings → Data) and delete all of it (Settings → Reset all data), or contact us
to delete your account and associated data.
Depending on where you live (e.g. Singapore PDPA, EEA/UK GDPR, California CCPA), you may have rights to
access, correct, delete, or port your personal data — contact hello@theopsin.com.
9. Children
OPSIN is not directed to children under 13 (or the minimum age in your country), and we do not knowingly
collect their data.
10. Changes
We may update this policy; we'll change the effective date above and, for material changes, notify you
in the app.