Privacy
What I Publish
Short version: this site tracks you not at all, and tracks me on purpose.
What this site collects about you
Nothing. There is no analytics script, no advertising pixel, no cookie banner and no account system. The site is a set of static files. If you are reading this, the only record is whatever your own browser and Cloudflare keep to serve the page.
What the Health page shows
My own fitness data, published deliberately. It is read from my personal Google account through the Google Health API, using read-only permissions, and refreshed roughly once an hour. I am both the subject of that data and the person choosing to publish it.
What is deliberately never collected
Location. The OAuth permission that would expose GPS traces from workouts is never requested, so those routes are unreachable to this system rather than merely unpublished. Exact bedtimes and wake times are not stored either. Nothing is kept about any person other than me.
How it is published
Rounded, and lagging one full day behind — nothing about the current day is ever published. Weight, body fat, steps, sleep and active minutes appear as daily figures for the most recent completed day; every chart aggregates them into weekly averages. Resting heart rate is the exception: it is published only as an average across at least three days, never as a single day, and the number of days behind each average is withheld so the individual days cannot be reconstructed by comparing averages over time. Steps are rounded to the nearest hundred, weight to 0.1 kg, sleep to 0.1 hours. The public feed is built from an explicit allow-list of fields, so a new column in the database cannot become public by accident.
Where it is stored
In a Cloudflare D1 database in Western Europe, in my own Cloudflare account. The OAuth tokens are encrypted with AES-256-GCM before they are written, and the key lives only in a Worker secret, so a copy of the database on its own reveals nothing.
Google API Services
This site's use of information received from Google APIs adheres to the Google Health API Developer and User Data Policy, including the Limited Use requirements. The data is used for exactly one purpose — displaying it on the Health page — and is never transferred or sold to anyone.
Revoking access
I can disconnect the integration at any time, and so can Google. Revoking access stops the hourly sync immediately. Note that anything already published may persist in search engine caches and web archives outside my control.
Questions: [email protected]