Last updated: 30 September 2026
TypeFree is a touch-typing trainer. It works offline, shows no ads and contains no third-party trackers or advertising SDKs. This page explains, in plain words, what stays on your device and what is sent to our server.
Your progress, lesson history, per-key statistics, settings and the chosen language are stored locally in the app. Nothing of this leaves the device by itself.
The app also generates a random identifier for the device. It is not the advertising ID and not a hardware serial number: it is a random value created by the app so that the same training session is not counted twice.
Training sessions: if the app can reach the network, it sends the result of a finished session — date, mode, language, keyboard layout, speed, accuracy, duration, number of characters and errors, the keys you missed most, app version and platform — together with the random device identifier. We use these records to keep your training history and, in aggregate, to see which lessons work and improve the trainer.
Optional account: you may create an account with a nickname and a short PIN. No email, phone number or real name is required. The PIN is stored only as a cryptographic hash. The account exists for one purpose: to carry your progress between devices.
Certificate: if you ask for a certificate after a speed test, the name you type and the result are stored so the certificate page and its preview image can be generated. A certificate is public to anyone who has its link.
Competition: if you publish a result to the leaderboard or challenge a friend, your nickname, the result and the replay of that run become publicly visible.
On Supabase managed PostgreSQL in the European Union (Stockholm region). Tables are closed by row-level security; the app writes only through restricted server functions.
We do not sell data, do not share it with advertising networks and do not use it for profiling or for targeted advertising.
The site uses our own self-hosted analytics to count visits and pages; it is not Google Analytics and the data stays on our servers.
The site also has a bug-report button and a chat widget. If you use them, what you write — and a screenshot, if you attach one — is sent to us so we can answer.
The app has a kids mode with large letters and voiced prompts. We do not ask children for personal data: an account is optional, and a nickname does not have to be a real name.
If you are a parent and believe your child has sent us something you would like removed, write to us and we will delete it.
You can use the whole trainer without an account, with the network switched off.
Delete your account in the app: tap the account button in the top bar (☁️ or 👤), press “Delete account” and tap it again to confirm. This removes from the server your nickname and PIN hash, the training sessions synced to the account, and the leaderboard results, challenges, replays and certificates published under the account’s nickname. Progress stored on the device itself stays until you remove the app.
No longer have the app, or published something under another name — for example a certificate with a different name? Send a deletion request through the chat button on this site or the Telegram bot @TypeFree_bot, tell us the nickname or the name, and we will remove it from the server.
Training sessions sent without an account carry only the random device identifier and are not linked to any name or nickname.
Questions about this policy, or a deletion request: the chat button on this site, or the Telegram bot @TypeFree_bot. Author and data controller: Denis Onosov (ODV999).