Privacy policy
What Nocterna reads, and what it keeps.
The short version: Nocterna reads a page only when you press Match, uses its words to pick music, and keeps nothing that could say what you read. No ads, no selling data, no tracking.
What leaves your browser
When you press Match this page, the extension sends up to 4,000 characters of the visible text of that one tab to Nocterna's server, api.nocterna.app. Nothing else from the page, nothing from your other tabs, and nothing in the background.
Nocterna never reads a page on its own, and it doesn't read pages such as banks, email, health portals and government sites, even if you press Match there.
What happens to the text
The server scores the text on eight moods, so it can pick music that fits. To do that it sends the first 2,000 characters to Google's Gemini API, a language model, which sends back the scores. Then the text is thrown away: it is never written to the database, the logs or error reports.
For each page, Nocterna keeps:
- A SHA-256 hash and a 256-bit fingerprint of the text. Neither can be turned back into text. They only let the server recognise the same or a nearly identical text the next time someone matches it, so it doesn't have to ask the model again.
- The eight mood scores, and a few words that describe the mood.
Never the text, the page's address, its title, or who read it. Nocterna's use of the page text it receives follows the Chrome Web Store User Data Policy, including its Limited Use requirements.
What Nocterna keeps about you
Without an account
- A random ID for your browser, created when you install the extension. Nothing about you is in it.
- The extension's version, and when that ID was created.
- How many new pages it matched today. The count expires after about a day.
- In your browser, the extension keeps its ID token and what's playing. The token sits in Chrome's synced storage, so if you use Chrome sync it follows your Chrome profile to your other computers.
With an account (the paid plan)
- Sign-in is handled by Clerk. Nocterna keeps your email address, Clerk's ID for you, and which browsers you've linked to the account.
- Payment is handled by Stripe, which sells the subscription as the merchant of record (your receipt says “Sold through Link”). Stripe collects your payment and billing details under its own privacy policy; Nocterna never sees your card. Nocterna keeps your subscription's ID, its status, and when the current period ends.
Your account and your matches are never linked: the hashes and moods of pages hold no user, browser or account.
IP addresses, logs and errors
- The server's logs record each request's method, path and a random request ID. No IP address, no headers, no page text.
- Your IP address is held in the server's memory for up to an hour, only to limit how often one connection can create new browser IDs or link accounts. It is not logged or stored.
- Error reports go to Sentry with the error and the part of the server it came from. No request contents, no user, no page text.
- This website has no analytics, no ads and no cookies. It is hosted by Cloudflare and loads its fonts from Google Fonts, so, as with any website, they see your IP address when your browser fetches a page or a font.
Who else handles data
Nocterna uses these services to run. None of them gets your data to sell or to advertise with.
- Google (Gemini API)
- Scores the mood of a page: it receives the first 2,000 characters of a page you match.
- Fly.io
- Runs Nocterna's server, so every request to it passes through Fly.io.
- Neon
- Hosts the database: browser IDs, accounts, subscriptions, and the hashes and moods of pages.
- Upstash
- Holds the daily match counts, two-minute sign-in codes and short-lived caches.
- Cloudflare
- Hosts this website and the music. Your browser streams each track through a link that expires after an hour.
- Sentry
- Collects error reports, as described above.
- Clerk
- Signs account holders in: your email address and how you sign in.
- Stripe
- Takes payments and handles sales tax for subscribers: your payment and billing details.
What Nocterna never does
- Link what you read to you, your browser or your account.
- Sell your data, or share it for advertising.
- Show ads, or track you across sites.
- Read a page without your click, or read pages in the background.
Deleting your data
In the popup, open About, then Your data, then Delete my data. That deletes your browser's ID and today's match count from the server. If you have an account, it first cancels your subscription with Stripe, then deletes the account, its email address and its linked browsers. The moods of pages stay, since nothing links them to you.
Uninstalling the extension removes everything it kept in your browser. The browser ID on the server stays, linked to nothing, and an account stays until you delete it, so delete your data first if you want it all gone.
For anything else, such as a copy of what's kept about your account, a correction or a question, write to help@nocterna.app.
Children, and changes
Nocterna isn't made for children under 13 and doesn't knowingly collect anything from them.
When this policy changes, this page changes with it, along with the date at the top.