Privacy
Last updated 21 October 2026.
nihowdy teaches Mandarin. To do that it needs to hear you and, if you allow it, talk with you. This page says exactly what happens to that data.
The short version
- Lessons, review, and tone scoring work without sending anything to an AI provider.
- AI features are off until you turn them on, and you can turn them off again in Settings.
- Voice recordings are deleted after scoring, within 24 hours at the latest, unless you ask us to keep them.
- We do not sell your data, and we do not use it to train models.
What we collect
| Data | Why | Where it goes |
|---|---|---|
| Account email | Sign-in and account recovery | Supabase (authentication) |
| Learning data: lessons completed, review scheduling, scores, goals, daily minutes | Your progress and spaced repetition | Supabase (database), scoped to your account |
| Voice recordings | Tone scoring and pronunciation feedback | Processed on your device for the pitch display; sent to our gateway for speech recognition when you use voice feedback |
| Tutor messages | Conversation and corrections | Sent to DeepSeek to generate a reply; stored in your account so the thread survives a new device |
| Purchase status | Whether Pro is active | RevenueCat, the App Store, and Stripe for web purchases |
| Crash and error reports | Fixing bugs | Sentry. No learner content is included. |
| Usage counts | Quotas, cost control, and rate limits | Supabase. Counts only — no prompts, no audio. |
AI providers
When you allow AI features, we send the minimum needed to do the job:
- DeepSeek — the text you type to the tutor, plus a short summary of your level. DeepSeek processes data in China.
- Xiaomi MiMo — voice clips and their transcripts when you ask for speech feedback, and lesson sentences when we pre-render audio. Xiaomi processes data in China.
- Cloudflare — hosts the app, the AI gateway and this site, and keeps request logs (IP address, timestamp, path). It does not receive the content of your messages or recordings; the gateway passes those through to the providers above without storing them.
We do not include your name, email, or account ID in these requests. Tone scores are calculated by our own signal processing on the audio; the models explain those scores, they do not decide them.
If you are not comfortable with your words or voice leaving your region, turn AI features off. The course, review queue, and on-device tone display keep working. If we add another processing region for text or speech, this page and the in-app consent screen will say so and ask you again before anything is sent there.
How long we keep it
- Voice recordings: deleted after scoring. The app keeps no library of your voice and offers no way to keep one.
- Tutor messages: kept with your account so your history is there when you come back. Deleting your account deletes them.
- Learning data: kept while your account exists.
- Operational logs: route, provider, latency, token counts, and an error code. No prompts, no audio, no transcripts. Kept for 90 days.
Your controls
- Consent: Settings → AI features. Turning it off takes effect immediately.
- Export: Settings → Your data → Export. You get a JSON file with everything we store about you.
- Deletion: Settings → Your data → Delete. We remove your rows, your stored recordings, and tell RevenueCat to delete the subscriber record. Deleting the app does not cancel a subscription; cancel that in the App Store.
Children
nihowdy is for people aged 13 and over. We do not knowingly collect data from children under 13. If you believe a child has created an account, write to us and we will delete it.
Security
Provider keys live on our servers, never in the app. Every table carries row-level security so one account cannot read another's rows. Audio is stored privately and expires.
Changes
If we change which providers we use or what we send them, we will update this page, bump the consent version, and ask you again inside the app. We will not make a material change and call it silence.
Contact
Questions, or a request we should handle by hand: the contact address on our App Store listing.