Plain-language summary
- We do not sell personal data.
- We do not use drafts or imported files to train AI.
- Text is not included in analytics events, URLs, or server calculation logs.
- Saving a draft is optional and stores it in this browser only.
Data inventory
| System | Purpose | Content | Retention/control |
|---|---|---|---|
| localStorage | Preferences, consent, calibration | Settings and WPM; no draft text | Until expiry or user deletion |
| IndexedDB | Explicitly saved drafts and practice history | Saved text only after Save locally; practice records exclude text | Until user deletion; practice history capped at 50 |
| Nginx | Production operations and security | Path without query, anonymized/truncated IP, status and timing | Target maximum 30 days |
| Umami | Always-on cookieless traffic and product analytics | Page path without query/hash, referrer, browser, operating system, device, country, and approved coarse product events; no draft text | No tracking cookies; server-side retention is controlled by the Umami operator |
| GA4 | Optional aggregate usage funnel | Approved events and coarse fields only | Loads only after GA4 consent |
Your browser controls
Export before deleting if you need a backup. Deletion is immediate and cannot be undone.
Analytics choice
Cookieless Umami statistics load on every visit and are not controlled by the GA4 choice. GA4 is denied by default. The privacy panel provides equally visible Allow GA4 and No GA4 choices, and you can reopen it from the footer to withdraw GA4 consent.
Contact
Privacy questions: [email protected].