Privacy
Policy for the website and the iPhone app
In short
You can learn with thaidee without an account. In that case your name, settings and progress stay on your device. If you sign in with Apple or Google, your progress is stored on the server so you can move between devices. Even without signing in, the website and the app contact the server for learning materials, images and audio. There are no ads and no visitor analytics.
On your device
Your device stores the name Kai calls you, your settings, your own words, practice answers, tracing results, completed materials, the review schedule and achievements. In the browser this is site data; in the iPhone app it's a local database. Downloaded audio is stored separately. Each installation has a random identifier: after you sign in, it's linked to your account and helps sync changes.
When you sign in
Apple or Google provides your account identifier, email, name and a link to your photo, if this information is available, as well as technical sign-in tokens. Apple may hide your real email address. We never receive your Apple or Google password. Your learning progress, your own words and the name Kai calls you are sent to the server. Theme, typeface, voice, auto-advance and lesson settings stay on the device; lesson completion results may sync. The server also stores the installation identifier, platform, app version and sync protocol version, time zone and the times of requests. A sign-in session contains the IP address and information about the browser or app.
Why this data is needed
Your name is used for Kai to address you, answers and progress are used for reviews and statistics, and the account is used for saving and syncing. Identifiers and technical data help verify sign-in, merge changes from different devices and investigate errors. Learners' data is not sold, published or shared for advertising. We don't use it for marketing emails.
Requests and error reports
When pages, content and audio load, the servers receive the IP address, the request URL, the time and technical information about the client. This information may remain in hosting logs. When an API error occurs, Sentry receives the error message and stack trace, the server version, the request URL and method, the name and version of the browser or app and, where the context is available, the account, installation and operation identifiers. These reports may be linked to an account. We don't attach your full progress or the request body, and we strip query values from database errors, but individual values can still end up in an error message. Sentry also receives anonymised API usage counters: how many requests there were and how long they took, by route and platform, without account or installation identifiers. How long logs and reports are kept depends on the settings of each service.
Who processes data
The website and API run on Vercel; the account and progress database is hosted by Neon. Cloudflare R2 stores learning files and private database backups. Sentry receives API error reports. Apple and Google take part in sign-in if you choose them. These services process the data they need to operate; processing may take place outside your country. The browser uses technical cookies for sign-in. The app keeps the session key in the iOS secure storage. When we share data with providers, we require that it's protected at least as well as this policy describes and used only to provide the relevant service.
How long data is kept
Local progress is kept until you reset it or clear the device data. Account data is kept until the account is deleted. A daily job removes sync change log entries older than 30 days. Database backups have a retention period of 30 days, so after an account is deleted its data may remain in private backups for a while. Export files and system device backups are stored separately, under your control and according to your system settings.
How to delete your account
In the app, open your profile from the Today tab, then Account and Delete account. On the website, open Settings and the Account section. You may need to sign in again. Once the deletion succeeds, the account, its progress, sync log, sessions and device records are deleted from the server. Progress on the current device is cleared; the device settings are kept. Local copies on other devices need to be cleared separately. Error reports, export files and system backups aren't deleted by this button. Deleting the app, signing out or revoking access in your Apple or Google settings doesn't by itself delete your thaidee account.
Managing your progress
In the progress settings you can save your data to a file, move it to another device or reset it. The file may contain your name and your own words, so only share it with someone you trust. A reset made while signed in syncs to your other devices. To delete your account completely, use the separate Delete account button.
Audio and phone features
Learning recordings are downloaded from the server. Your own words may be read by system speech synthesis: how it's processed depends on the selected voice and your browser or iOS settings, and a network voice may send the text to its provider. thaidee doesn't record your voice or send microphone recordings. Learning doesn't require access to the camera, contacts or location. When importing and exporting, you choose the file or the way to share it in a system window.
Questions and policy changes
Andrey Smirnov is responsible for data processing in thaidee. For requests to access, correct or delete your data, or to stop processing it, write to admin@thaidee.app. When you write, we receive the sender's address and the message content so we can reply and resolve the issue; don't send passwords or sign-in keys. You can ask for the correspondence to be deleted at the same address. Help with your account is on the support page. Don't post your email, progress files or sign-in keys in public chats. If data processing changes, we'll update this page and the date below. External websites opened from links follow their own policies.
Updated October 15, 2026.