privacy.txt — bash — 80×24

tl;dr

>Your text never leaves your browser. Every tool on this site runs in JavaScript on your own device.

>There is no account, no login, no database, and no server that receives what you type.

>Drafts and settings are saved to your browser's localStorage so your work survives a refresh. That storage is yours — it is never read by me or anyone else.

>Page views are counted with Umami, which is cookieless and anonymous. No individual can be identified from it.

>You can wipe everything ReadCalc has stored, right now, using the purge tool further down this page.

what is not collected

Most privacy policies are a long list of things a site does take. This one is mostly a list of things it doesn't.

  • The text you paste, type, or drop into any tool. It is processed in your browser and never transmitted.
  • Your name, email address, or any other personal detail. There is nowhere to enter one.
  • Accounts or passwords. ReadCalc has no login.
  • Tracking cookies, advertising cookies, or any cookie at all. ReadCalc sets none.
  • Your IP address in any stored, linkable form. See the analytics section below.
  • Cross-site tracking pixels, fingerprinting scripts, or ad-network tags.
  • Files you upload. Nothing is uploaded — files are read locally by the browser.
  • Your mind maps, scripts, drafts, comparisons, or reading-test results. They stay in your browser.

There is no server-side component to ReadCalc. It is a set of static files on a CDN. Even if I wanted your text, there is no code path that would deliver it to me.

what is stored in your browser

ReadCalc uses localStorage — a per-site storage area built into your browser — so that a refresh, a closed tab, or a browser restart doesn't cost you your work. It sits on your hard drive, is readable only by pages served from readcalc.com, and is never sent anywhere.

Every key ReadCalc writes is prefixed readcalc-. There are fifteen of them, and this is all of them.

// scroll the table sideways →

Key What it stores Set by

Nothing here is an identifier. There is no visitor ID, no session token, and no value that could be used to recognise you on a return visit or link you to anything outside this site.

Worth knowing: three of these hold the full text you entered, not just numbers — readcalc-draft, readcalc-history and each tool's -text key. That is the point of them: it is how your work survives a refresh. But it does mean anyone with access to your browser profile could read it. If you have just pasted something sensitive, clear it below when you are done.

Clear it yourself

You don't need to dig through browser settings. This scans your browser for readcalc- keys, shows you exactly what it found, and deletes only what you tick.

$ ls ~/.readcalc/

    $ rm -rf readcalc-data

    Note: this clears storage for the browser and device you're using right now. If you also use ReadCalc on your phone, run it there too. Clearing storage is irreversible once you leave this page — the undo option above only lasts while the page is open.

    analytics: what Umami sees

    I do count page views. Knowing which tools people actually use is what keeps me building the right ones. But I'd rather do it without surveilling anybody, so ReadCalc uses Umami instead of Google Analytics.

    What that means in practice

    • No cookies. Umami sets none. There is no consent banner on this site because there is nothing to consent to.
    • No persistent identifier. Umami does not assign you an ID that follows you between visits or across sites.
    • Aggregate only. I see numbers — "the teleprompter had 400 views this week", "most visitors arrive from Google" — never individual sessions attached to a person.
    • Your IP is not stored. It is used transiently to derive a country and then discarded. It is not written to the database.
    • Your text is never an event. No tool sends your content, your word counts, or your results to analytics.

    What it does record

    Page URL, referring site, browser, operating system, device type, screen size, and country. Plus a small number of anonymous interaction events: which hidden terminal commands get discovered on the calculator (there are 23 of them — sudo, matrix, the Konami code and so on), and whether the purge tool on this page gets used. That is the complete list. These events record that a thing happened, nothing more — no text, no identifier, no link back to you.

    If you'd rather not be counted at all, any content blocker or browser tracking protection will stop the Umami script loading. Every tool works exactly the same with it blocked.

    third parties

    Two. That's the whole list.

    • Cloudflare — hosts and serves the site (Cloudflare Pages). As with any web host, its edge servers process the network requests needed to send you the page, which includes your IP address in transit. Cloudflare's handling of that is covered by its own privacy policy.
    • Umami Cloud — counts page views, as described above. Covered by the Umami privacy policy.

    Nobody else. No ad networks, no data brokers, no email platform, no CRM, no session-recording tool, no A/B testing service, no chat widget, no embedded fonts from a third-party CDN. ReadCalc loads no external JavaScript apart from the Umami script.

    Nothing on this site is sold, shared, licensed, or handed over for advertising. There is no data to sell even if I were inclined to.

    files you drop in

    Several tools let you drag in a .txt, .md, .csv, or .json file rather than pasting.

    Those files are not uploaded. The word "upload" appears in a few places in the interface because it's what people expect to read, but it's inaccurate. What actually happens is the browser's FileReader API reads the file straight off your disk into the page's memory, and the text lands in the tool's input box. No network request is made. No copy is created anywhere but your own machine.

    The practical proof: open your browser's network tab, drop a file in, and watch. Nothing goes out. You can also disconnect from the internet entirely once a tool page has loaded — file drops and every calculation keep working.

    Once the text is in the input box it follows the same rules as anything you typed: it may be saved to a localStorage key listed above so you don't lose it on refresh, and it goes no further.

    share cards and embeds

    The Share Card generator turns your reading stats into an image. The card is drawn on a <canvas> element in your browser and exported to PNG locally — it is never rendered on a server, and the resulting image is never sent to me or stored anywhere. What you download is the only copy.

    The generator also produces embed codes for putting a card on your own site. Two things worth knowing:

    • The static HTML and WordPress embeds are self-contained. They render on your own page with no callback to ReadCalc, so your readers' visits are invisible to this site.
    • The iframe embed loads a page from readcalc.com. That means a request reaches Cloudflare, and Umami counts it as a page view — the same as any visit here. It sets no cookie and identifies nobody, but if you'd prefer zero contact between your readers and this site, use the static HTML embed instead.

    Card values are encoded in the embed URL itself. If your stats came from a sensitive document, remember that anyone who can see the embed code can see those numbers — though never the underlying text, which was never in the URL to begin with.

    changes and contact

    If this policy changes in a way that affects what's collected, I'll update the date at the bottom of this page and note it in the readme. There's no mailing list to notify you through, which is rather the point.

    ReadCalc is built and run by one person: Dean Warwick, in Christchurch, New Zealand. If something here is unclear, or you think a claim on this page is wrong, tell me — I'd genuinely rather know.

    $ mail [email protected]

    Last updated: 16 August 2026
    Effective: 16 August 2026
    // no data collected in the writing of this page