The short version
Two kinds of cookie are involved.
- A session cookie on the Shelf application. It is what keeps you signed in, so the app cannot function without it. No consent is required for a cookie of this kind, and there is no version of the product that works without one.
- Analytics cookies on this website. They tell us which pages people read and which they leave, so we can make the site better. These are optional, they are not set unless you accept, and you can change your mind at any time.
We do not sell personal information, we do not share it for cross-context behavioural advertising, and we do not use your files to train machine-learning models. Those are standing commitments and they do not change with your cookie choice.
What a cookie is
A cookie is a small piece of text a website asks your browser to store and send back on later requests. First-party cookies are set by the site you are visiting; third-party cookies are set by someone else whose code the site has embedded, and are the mechanism behind most cross-site tracking.
What we set
| Cookie | Where | Purpose | Consent | Lifetime |
|---|---|---|---|---|
| Session | app.getshelf.dev |
Keeps you signed in after you enter your sign-in code. Strictly necessary. It is
host-only (not shared with subdomains), HttpOnly
(unreadable by JavaScript), Secure and SameSite-restricted. |
Not required | Until you sign out or it expires |
| Google Analytics | getshelf.dev |
Measures page views and how people move through the site, so we can see what is worth keeping and what nobody reads. Provided by Google Analytics 4, with IP anonymisation enabled. | Required | Up to 24 months |
Our hosting provider also counts page views without setting any cookie and without identifying your device. It is named in the privacy policy.
Local storage
Not cookies, but you should know about them. This data stays on your device and is never sent to us.
| Key | Holds |
|---|---|
shelf-site-theme | Whether you chose the dark or light theme, so the page does not flash the wrong one next time. |
shelf-consent | Your answer to the cookie banner, so we stop asking. Clearing it makes the banner appear again. |
| App preferences | Theme, editor settings and unsaved drafts in the application, so closing a tab does not cost you a paragraph. |
Your choice
When you first arrive you are asked once. Whatever you choose:
- Declining costs you nothing. Every page works identically either way. There is no content behind the banner and no reason to nag you.
- Declining is as easy as accepting. One button each, side by side, neither of them hidden or pre-selected.
- You can change your mind. Use the cookie settings link in the footer of any page to be asked again.
- Nothing loads while you decide. The analytics script is only requested after you accept, not loaded and held back.
Managing cookies
Every major browser lets you view, block and delete cookies, usually under Settings, then Privacy or Site Settings. You can also send a Global Privacy Control signal, which we honour as a refusal of optional cookies.
Blocking the session cookie on app.getshelf.dev will prevent you from signing in.
That is the trade-off with a strictly necessary cookie.
Changes
If we add anything beyond what is listed above, this page is updated first with a new effective date, and anything requiring consent is not set until you give it. No pre-ticked boxes, no banner that only offers "accept", no consent buried behind three clicks. Account holders are emailed before anything that materially changes what is collected about them takes effect.
Contact
Questions about this policy: developer@getshelf.dev. See also the Privacy Policy for what we collect more broadly.