Privacy
TL;DR
Ranger Reader runs entirely in your browser. Nothing leaves your device. Ever.
It is one HTML file. There is no server. There is no backend. There is no cloud. There is no telemetry, no analytics, no third-party JavaScript SDKs, no font CDN, no image CDN, no remote API of any kind.
If your machine is offline, the reader works. If your machine never reaches the internet again, the reader still works.
What is stored
Browser localStorage, on your machine, under one key. The stored payload contains:
| Field | What it holds |
|---|---|
| The current text you pasted or dragged in | So you can resume where you left off |
| Your chosen reading mode | Word / Sentence / Paragraph |
| Your chosen WPM | Default 500, range 200–1500 |
| Your current reading position in the text | Word / sentence / paragraph index |
Inspect it yourself — open DevTools (Cmd+Opt+I on Mac, F12 on Windows / Linux) → Application tab → Storage → Local Storage → file:// (or your URL). You'll see one key with the JSON blob containing the four fields above. That is the complete extent of what Ranger Reader stores.
How to clear it
| Method | What it clears |
|---|---|
| Click the "Reset" button in the reader UI | The four fields above; reader returns to factory defaults |
Browser → Clear Browsing Data → "Cookies and other site data" for file:// (or your hosting domain) |
Same as above |
| Open the file in an Incognito / Private window | Reader works normally; nothing is persisted at all; closing the window forgets everything |
What is sent over the network
Nothing.
Verify by opening the page in a browser, opening DevTools → Network tab, and using the reader. You will see zero network requests. The reader uses no fetch(), no XMLHttpRequest, no WebSocket, no Service Worker, no Web Push.
The only reason your browser might make any network request while the reader is open is if you have other extensions installed that touch every page. Ranger Reader itself sends nothing.
How the page is delivered
You open ranger-reader.html directly from your filesystem (most common) or from a static host you control (e.g. davidtkeane.com mirrors a copy at https://davidtkeane.com/rangerhq-reader). In either case:
- Direct file open (
file://...): the browser loads the HTML from your disk. No network hop. No DNS lookup. No server log entry anywhere. - From your static host: your host's access log records that you fetched the file. After that, all execution is local. Subsequent reading sessions don't re-hit the server unless you reload.
In neither case does Ranger Reader phone home to David Keane, RangerHQ, davidtkeane.com, or anyone else.
Third-party content
There is none.
- ❌ No web fonts (the reader uses system fonts only)
- ❌ No CDN-loaded JavaScript libraries (everything is inline)
- ❌ No analytics (Google Analytics, Plausible, Fathom, etc. — none of them)
- ❌ No error reporting (Sentry, Rollbar, etc. — none of them)
- ❌ No A/B testing scripts
- ❌ No advertising network code
- ❌ No social media share widgets
- ❌ No iframes pointing anywhere
The HTML file is self-contained. You can read every line of it in any text editor — the entire app is ~1000 lines of HTML + CSS + JavaScript.
Verification
Three ways to convince yourself this is true:
- Open the file in a text editor. The whole app fits on one screen if you scroll. There's nothing hidden.
- Open DevTools → Network while reading. Zero requests.
- Run the file on an air-gapped machine. Reader works perfectly.
GDPR / CCPA / LGPD / PIPEDA
No personal data is collected or processed. No data is sent to any third party (because no data is sent anywhere at all). Your reading habits are visible only to you, on your own browser, on your own machine.
These regimes apply when an entity collects or processes personal data. Ranger Reader is not an entity — it's a static file. There is nothing to comply with because there is nothing to comply about.
Children's privacy
Ranger Reader is a static HTML file with no data collection. It does not knowingly or unknowingly process data of children under 13, or any other age. It processes the text you paste into it, in your browser, and then forgets unless you ask it to remember.
Contact
- Email: david@davidtkeane.com
- Issues / source: https://git.davidtkeane.com/ranger/rangerhq-reader
- Author: David Keane, Dublin, Ireland