Privacy

Last updated: 23 August 2026

This page says exactly what is recorded, by whom, and for how long. It is in two halves, because a website and an app are different things and merging them is how these pages become useless.

This website

When you load a page here we record the date and time, which page it was, which language it was in, your country as reported by Cloudflare’s network, and the hostname of the site you followed a link from: the hostname only, never the full address you came from.

We do not store your IP address. We do not store your browser’s user-agent string. We use no cookie, no fingerprint and no identifier of any kind to recognise you or to link one visit to another. The consequence is deliberate and we would rather have it this way: we count page views, not people. We cannot tell a returning visitor from a new one, and we never will.

One cookie exists. It is named “lang”, it holds the code of the language you chose from the ones offered at the foot of this page, and it is set only when you explicitly pick one using that link. It is first-party, lasts a year, and is never used for counting.

There is no consent banner, and that is a considered position rather than an oversight: the counting places nothing on your device and stores no identifier, and a first-party preference cookie set by your own explicit action does not require consent.

Clicking a download button records the date and time, your country, the page language and which platform’s installer you chose (macOS or Windows), and then sends you on to the file, which is served from releases.grainref.app.

This site runs on Cloudflare (Workers, R2 and Analytics Engine). As our hosting provider, Cloudflare necessarily receives and processes your IP address and request headers in order to deliver the page to you at all, and keeps its own network logs under its own privacy policy. So when we say we do not store those things, we mean precisely that, not that nobody ever sees them. The counts we do keep are held by Cloudflare for three months, and are never exported, archived, or combined with anything else.

The “Buy a licence” button leaves this site for Polar, our payment provider. Their privacy policy applies from that point onwards, and your payment details never reach us.

The Grain app

The app contains no analytics, no telemetry, no accounts and no sign-in. Your library (the files, thumbnails, tags, notes, transcripts and search indexes) stays on your own machine. None of it is ever uploaded anywhere.

On macOS and Windows the app asks updates.grainref.app once per launch whether a newer version exists, sending its own version number, operating system and processor architecture. We record those three things plus the time and your country. No identifier, no stored IP address. You can turn this off in Settings → General (“Check for updates automatically”). This is the only request Grain makes on its own, so with it off nothing leaves your machine unless you ask for it (see below), and you check for new versions by coming here.

If you enter a licence key it is sent once to activate.grainref.app, which checks it with Polar. Polar returns your email address, which is embedded in the signed licence file kept on your own machine so the app can verify it offline from then on. We log neither the key nor the address.

Connections you start yourself

Some things you can ask the app to do reach other people’s servers directly from your machine. These are not data we collect, and we never see them, but they are worth knowing about:

On iPhone and iPad none of the above applies: there is no update check, no licence system and no add-on downloads. That is why Grain’s App Store privacy label reads “Data Not Collected”.

The browser extension

The Send to Grain browser extension collects nothing, stores nothing and transmits nothing. It has no analytics, no accounts, and it makes no network requests of its own: there is no server for it to talk to.

Everything it does is started by you and stays on your machine. When you send an image, page, audio file or link, the extension hands that one address to the Grain app on your computer through a grain:// link, and the app fetches it exactly as if you had pasted it (the site being fetched from sees your IP address, as above). When you clip an article, the readable part of the page is converted to markdown inside your browser and passed to the app through your clipboard. In both cases the handoff from browser to app never crosses the internet.

The extension reads a page only when you invoke it on that page, and holds no broad permission to read your browsing: it cannot see which sites you visit, and it has no access to any page you have not explicitly acted on.

Your rights, and getting in touch

Nothing we store identifies you, so there is no personal data of yours for us to show you, correct or erase: there is nothing to look up. If you want to ask about any of this, or you think something on this page is wrong, please get in touch:

hello@grainref.app