Last updated 2026-07-15
This covers both adabreader.com and the Adab Reader browser extension — they share the same backend and the same practices, so one document covers both.
When you generate a reading — by pasting text, uploading a file, or pasting a link on the website, or automatically via the browser extension on a page where it's enabled — the article's text, its headline, and the site's name are sent to our own server at adabreader.com, which passes them to Anthropic's Claude API to generate the reading. That's the only purpose they're used for. They are not used to train or fine-tune any model, and we don't retain a copy on our servers beyond what's needed to serve that single request.
The extension reads the visible text of a page only to detect whether it qualifies as a substantial article — it looks for article markup and at least 400 words — and, if it qualifies, to extract that text for a reading. Pages that don't meet both conditions are ignored, and pages containing a password field are always skipped. It only does this while the extension is enabled: you can pause it for a specific site or turn it off globally at any time from the extension popup. It does not read pages while disabled, and it does not track or store your browsing history.
To apply a usage limit without requiring accounts or logins, each installation generates a random identifier the first time it runs — a string of random characters, generated on your device, not derived from anything about you or your computer. It is stored locally (in chrome.storage.local in the extension, localStorage on the website) and sent with each request that generates a reading, so our server can count how many readings that installation has used.
On our server we store only that identifier and a number: how many readings it has generated. No article text, URLs, or browsing data are attached to it. The record is deleted automatically a year after your last reading. Clearing your browser storage clears the identifier, and the extension simply generates a new one. The website and the extension each generate their own separate identifier, and they are not linked.
localStorage on the website, and in chrome.storage.local in the extension — so revisiting the same piece doesn't require regenerating it. Your on/off and per-site pause preferences are stored the same way. None of this leaves your device.Three services may process data as part of how this works: Anthropic (its Claude API generates the reading from the article text you provide), Cloudflare (hosts the site, runs our server-side code, and stores the installation ID counts, any shared readings, and any unlock-form submissions), and Resend (used only to email us a copy of an unlock-form submission, and only if you submit one). None receives anything beyond what's described above.
No accounts, no logins, no advertising, no analytics or tracking scripts, and no browsing-history collection. We don't sell or transfer your data to anyone beyond the processing described above, and we don't use it for anything unrelated to generating the reading you asked for.
This is a small, actively-developed project. If anything here is unclear or you have a concern, reach out: contact@adabreader.com.