Last updated 18 October 2026
Draft — not yet reviewed
This document was written from what the code actually does, but it is a draft awaiting Davis Kim’s review, and it is not legal advice. Treat it as an honest description of the site rather than a settled agreement.
Perfumers Codex is meant to be read without an account, and it is built to know as little about you as it can while still working.
Every search on this site is written to a log. That log has three things in it: the search text after it is trimmed and lowercased, how many results came back, and the moment it happened.
There is no user id, no IP address, no session key and no device identifier in it — not blank, not hashed, but absent from the table. Nothing in the database can attach a search to a person, and that stays true whether you are signed in or not.
It exists for one reason: a search that returns zero results is usually a gap in the synonym table — a trade name or an abbreviation the codex does not know yet. Reading the misses is how the reference gets better at answering the names perfumers actually use.
Reading the codex needs no account and collects nothing that identifies you. Everything below is either the search log above, or something you get only by choosing to sign up.
Your notes and saved materials are yours. The database enforces that with row-level security: every read and write is scoped to the row’s owner, so no other reader — signed in or not — can reach them, and the site has no screen anywhere that shows one person’s notes to another.
I should be straight about the limit of that. I administer the database, so I can read what is in it. I don’t, and I have no reason to, but a policy that told you it was technically impossible would be a promise the software does not enforce. Write notes accordingly.
Two, both strictly necessary, both named here because a policy that says “we use cookies” without saying which ones is telling you nothing. There is no consent banner because there is nothing to consent to — none of them tracks you.
Two small conveniences live in your browser’s local storage. Neither is sent to the server, and clearing your browser’s site data removes both.
theme — whether you chose light, dark, or to follow your system.perfumers-codex:recent-searches — your last five searches, so the search palette can offer them back to you. This list stays on your device; the server never receives it.Two companies always, and Google only if you choose it. Each has its own privacy policy, and Supabase and Vercel process this data on my behalf under their data processing terms.
Supabase stores the database and the sign-in service in [ maker: the Supabase project's region (Project Settings → General), e.g. "the United States (AWS us-east-1)" ]. Vercel serves pages from its network worldwide. If you are in the UK or the European Economic Area, using an account therefore means your data is handled outside it; both companies cover that transfer in their data processing terms with the European Commission’s standard contractual clauses (and the UK addendum).
Passwords are stored only as one-way hashes by Supabase. Every person’s notes and saved materials are walled off from everyone else’s by the database itself, and that wall is tested automatically, with real test accounts, on every proposed change to the code.
If a breach ever exposes account data, I will email the people affected without undue delay, say what was exposed and what to do, and notify the regulators the law requires me to tell.
Accounts are for people aged 16 and over. The codex is a working reference for perfumers and is not aimed at children; if you believe a child has made an account, tell me and I will delete it.
The site is run by Davis Kim, who decides what happens to the data described here (in data protection terms, the controller). One person maintains it, and email reaches him directly: [ maker: contact email — hello@perfumerscodex.com is planned but not live yet ]
The date at the top of this page changes with it, and anything that alters what is collected or who sees it will be described here rather than folded in quietly.
18 October 2026: added the encrypted daily backups and how long they keep a deleted account (30 days).
18 October 2026: added Cloudflare Turnstile, the bot check on the sign-in forms, and noted that the site now passes your IP address to Supabase when you sign in, so its limits on repeated attempts apply to you alone rather than to every reader at once.
17 October 2026: removed the pc_gate cookie, which existed only while the site was behind a construction password.
12 October 2026: added the sign-in records Supabase keeps (the earlier version wrongly said no IP address was stored anywhere), what Google sends if you sign in with it, the reasons and legal basis for each kind of data, where it is stored, the new “Download your data” button and password reset, and the sections on breaches and children.
This page is a file in the project’s source repository. Once that repository is public, the full history of every word on it is public with it — which is the point of writing the policy from the code instead of from a template.