Privacy
Last updated 2026-09-01.
Pagestroke is a typing trainer. It needs to remember what you typed to be any use, and that is the only reason it keeps anything. There is no advertising, no analytics service, no tracking pixel and nothing is sold or shared for marketing.
If you do not sign in
Everything stays in this browser. Your books and their text, where you stopped in each one, your keyboard layouts, your settings and every typing statistic are held in this browser's own storage (IndexedDB and localStorage) and are never sent anywhere.
Two things do reach the server, and neither of them says who you are: the public domain books on the shelf are fetched from it, and the pages themselves are served from it. Clearing this site's data in your browser deletes everything a guest has, permanently.
If you sign in
The first time you sign in, the books in this browser, your place in each of them, your settings and your keyboard layouts move to your account. Statistics recorded before you signed in stay in this browser and are never transferred. They are still there if you sign out again; they simply do not become part of the account. From the moment you are signed in, what you type is recorded on the account instead.
This is what an account holds:
- From your sign-in provider: your email address, your display name and your avatar URL, plus the tokens that keep the connection to that provider working.
- Your books: title, author, language and the text of each chapter, compressed. The file you uploaded is not among them — see below.
- Your typing: one row per paragraph you finish, holding how long it took, how many characters and keystrokes it had and how many were wrong; and daily totals per key, per pair of keys and per mistaken substitution. Speed test results are kept too.
- Your setup: your keyboard profiles, your settings and your place in each book.
Individual keystrokes are never stored. The per-key numbers are running totals for a day, and the text you typed is the book's text, which we already have.
One more thing is kept beside a book that was moved out of a browser: a fingerprint of its text. It is what lets a second attempt at the same move recognise the book instead of shelving it twice, and it cannot be turned back into the text it was taken from.
Files you upload
An EPUB or TXT you add is opened and read inside your browser. The file itself is never uploaded. If you are signed in, only the text pulled out of it — the chapter titles and paragraphs — is sent to the server, and nothing else from the file: no images, no cover, no metadata beyond the title, author and language shown on the card.
Your keyboard
Reading a keymap over WebHID happens entirely in your browser, only after you pick the device in your browser's own permission dialog, and only ever reads: no command that changes anything is sent to your keyboard. The layout that comes back is stored the same way the rest of your setup is.
Cookies
Only sign-in cookies. A session cookie identifies your account while you are signed in, and a couple of short-lived cookies keep the sign-in round trip safe. There are no advertising or analytics cookies. A guest who never signs in is given no cookie at all.
Your browser also holds a few small values of its own: your settings and theme, which notices you have closed, and — for a guest — your books, your reading positions and your statistics. Which notices you have closed never leaves the browser at all. Your settings do leave it once you are signed in, because they are part of the account and follow you to your other devices.
Keeping the service standing up
Saving typing and adding books are rate limited, which needs a way to tell one caller from another. That counter lives in the server's memory — never in the database and never in a log — under a key made of your account id and, where the hosting can vouch for it, the IP address the request arrived from. It holds nothing else, it is forgotten as soon as a caller goes quiet, and it disappears entirely whenever the server restarts.
Who else is involved
- Google and GitHub (and Apple or Facebook, where a deployment enables them) handle signing in. They tell us the email address, name and avatar of the account you signed in with. We never see your password.
- Our hosting and database providers run the app and store its rows. Like any web host they keep ordinary request logs, which include IP addresses, for a short time and for operational reasons.
That is the whole list. No other third party receives anything about you.
Taking your data back
On the settings page, signed in, there are two buttons. Export hands you one JSON file holding your account row (id, name, email, when it was created), your settings, your keyboard profiles, your books with every chapter's text unpacked, your reading positions, one row per paragraph you have typed, the daily per-key, per-pair and per-mistake totals, and your speed test results. Two things are deliberately left out: the tokens that connect you to your sign-in provider, and your sessions. Both are credentials rather than your data, and a copy of them in a file on your machine would be a way into your account.
Delete account removes the account and every row attached to it — books, positions, statistics, keyboards, the link to your sign-in provider and the sessions on all your devices. It is immediate and it cannot be undone. Books on the public domain shelf stay: they were never yours.
As a guest, clearing this site's data in your browser is the same thing: there is nothing anywhere else.
How long it is kept
For as long as your account exists. Nothing expires on its own, because a typing history that quietly forgot last year would be a worse trainer. Delete the account and it all goes at once.
Children
Pagestroke is not aimed at children and asks for no age. Sign-in is handled by providers with their own rules about who may hold an account.
Questions
Write to hello@pagestroke.com. If this page ever changes in a way that matters, the date at the top changes with it.