Privacy policy
The short version: what you write here stays on your device. We do not have an account system, we do not have a database, and there is nothing behind this site that could tell us what you chose or wrote even if we wanted to know. Below is the long version, matched to what the code actually does rather than to what a privacy policy usually says.
Your reflection
The choice you select, the values reveal, any perspectives you open, the next-step prompt, and anything you type into the private note are saved — if you save them — only in your browser's local storage, under one namespaced key on your device. Nothing about your reflection is sent to a server. There is no form submission, no background request, and no analytics call anywhere in that path. This isn't only a promise about intent: an automated check runs before every release and fails the build if any file in the codebase both touches reflection data and calls out to the network — so the guarantee is enforced across the whole site, not just in the one module that stores your entries.
This means: we cannot see what you chose. We cannot see what you wrote. We cannot recover it if you clear your browser data, and we cannot hand it to anyone, because it was never ours to hold.
You can export everything you have saved as a plain JSON file, or delete it, from your journal at any time.
What "local storage" means, plainly
Your browser sets aside a small amount of storage for each site you visit, invisible to other sites. That's where your reflections live. It's versioned, so a future update to this site can migrate old entries safely rather than silently losing them; if a migration is ever destructive, you'll be offered an export first. If your browser blocks local storage — private browsing, a strict setting, a full quota — the site still works, your choice and reveal still happen, the next step just isn't saved, and the page tells you so.
What the server sees
This is a static site with no user accounts, served from Google Cloud Run. Like any web server, the infrastructure that serves each page keeps ordinary access logs: which URL was requested, the response code, a timestamp, and the browser's user-agent string. These logs exist for operational reasons — noticing an outage, an attack, a broken link — and are kept for 30 days before automatic deletion. They are not linked to anything you chose or wrote in the dilemma flow, because that data never reaches the server in the first place. We do not currently run any analytics, and there is no cookie set anywhere on this site — checked directly against the source, not assumed.
Third parties
None, today. Every font this site uses is served from this site's own domain rather than Google Fonts or any other third-party host — a deliberate choice, so your browser never has to ask another company for anything just to render a page. There is no embedded video, social widget, ad, or tracking pixel anywhere on the site.
If that changes — an analytics tool, a payment processor for a future paid product — this page will say so, in the same update that ships the change, naming exactly what's added and what it can see.
Security
Every page is served with a strict Content Security Policy and the standard modern security headers (HSTS, X-Content-Type-Options, Referrer-Policy, X-Frame-Options, Permissions-Policy) — enforced server-side, not optional per page.
Age guidance
Individual dilemmas carry their own age guidance where the subject matter warrants it. The site itself collects no personal information from anyone, of any age — there is nothing to consent to, because nothing personal is ever transmitted.
Changes to this policy
If a change to the site adds any new way that data moves — an account, a payment, an analytics event — this page is required to change in the same commit, not afterward. Substantive changes are logged publicly by date, the same way content corrections are (see our editorial policy).
Last reviewed 2026-09-16.
Questions
See contact and corrections for how to reach us, including for a privacy question specifically.