Introduction

CiaoSpeak ("the app", "we", "us") is a language-learning app for practicing conversation and vocabulary. This policy explains what information the app handles, how it is used, and the choices you have. Most of the app works entirely on your own device; the Conversation ("Chat") feature is the one exception, described in "AI Conversation practice" below.

Information we collect

CiaoSpeak does not require you to create an account, and does not collect your name, email address, or other contact details.

The app stores the following on your device only:

  • Your onboarding choices (target language, learning goal, experience level, daily practice goal)
  • Your lesson and review progress (streak, XP, completed lessons, badges, spaced-repetition mistake queue)
  • Your in-app preferences (sound effects, pinyin visibility, slow-audio playback, reminder setting)
  • Your Conversation chat transcript (saved on your device so the chat picks up where you left off after a restart)

None of this on-device data is sent anywhere, with one exception: using the Conversation feature sends your messages (and the lessons you've completed, so the AI teaches at the right level) to a backend service — see "AI Conversation practice" below for exactly what that involves.

Separately, the app generates a random installation identifier (not tied to your name or any personal detail) used to correlate crash reports and anonymous usage events from the same install (see "Third-party services" below), and, if you use Conversation, to apply a daily message limit and personalize what the AI teaches (see "AI Conversation practice" below). You can turn off crash/usage analytics at any time in Settings > Data; Conversation can simply be avoided by not using the Chat tab.

AI Conversation practice

The Conversation ("Chat") feature is a real AI teacher, not a fixed script. When you send a message — by typing, tapping a suggested reply, or speaking (see "Microphone & voice input" below) — the app sends that message, your recent conversation history (up to your last 20 messages, so the AI stays coherent turn to turn), which lessons you've completed, and your random installation identifier to a backend service CiaoSpeak operates on Cloudflare Workers. That service forwards your message to Anthropic's Claude API to generate the teacher's reply, then sends the reply back to your device. See Anthropic's own privacy policy for how they handle data sent to their API.

For quality and abuse monitoring, each exchange (your message and the AI's reply, keyed to your installation identifier — never your name) is logged by this backend infrastructure, and the backend enforces a daily limit on how many messages one installation can send. This is used only to catch bugs, off-topic replies, or misuse of the feature — never for advertising or to build a profile of you.

If you'd rather no conversation content ever leave your device, simply don't use the Chat tab — every other part of the app (Lessons, Progress, Settings) works entirely on-device, as described elsewhere in this policy.

Microphone & voice input

Conversation's mic button lets you speak a reply instead of typing one. Speech recognition happens using your device's or browser's own built-in engine — CiaoSpeak does not record or transmit raw audio for this. Only the resulting transcribed text leaves your device, and only because it's then sent onward as your reply exactly as if you had typed it — see "AI Conversation practice" above. If a future update adds any other microphone-based feature, this policy will be updated first, and the app will ask for microphone permission at that time with a clear explanation before anything is recorded.

Text-to-speech & sound

Spoken Chinese phrases are read aloud using your device's or browser's built-in text-to-speech engine. That processing happens on your device or through your operating system, not on a CiaoSpeak server. Sound effects (tap, correct answer, incorrect answer) are short audio clips bundled with the app and play locally.

How we use information

Everything in "Information we collect" above is used only to run the app's own features on your device: tracking your streak and XP, scheduling mistake review, remembering your preferences, and picking up where you left off.

Separately, the app also collects: crash/diagnostic data (device model, OS version, app version, and technical error details, used only to find and fix bugs); anonymous usage analytics (session counts and which tabs/features you use, keyed to the random installation identifier described above, never to your identity); and lesson/exercise completion data (which lessons and exercises you complete or leave unfinished, used to find where the curriculum is confusing or incomplete). This is used only for internal product decisions — fixing bugs and improving the app — never for advertising, behavioral targeting, or building a profile of you, and we do not sell or share it with third parties beyond the services named below. You can turn all of it off at any time via the "Share crash reports & usage data" toggle in Settings > Data.

Data storage, retention & deletion

Your data lives in the app's local storage on your device. It stays there until you either use "Reset progress" in Settings (clears your streak, XP, badges, completed lessons, review queue, and saved chat transcript, and restarts onboarding), or uninstall the app (removes everything). We keep no copy of it anywhere else.

Third-party services

CiaoSpeak uses Sentry for crash reporting and the anonymous usage/completion analytics described in "How we use information" above. No advertising identifiers, precise location data, or behavioral-targeting data are collected — this integration exists solely to find bugs and understand how the app's own features are used, not to build advertising profiles. Data sent to Sentry is keyed to the random installation identifier described above, never to your name, email, or any other personal identifier, since CiaoSpeak has no account system.

For the Conversation feature, CiaoSpeak also uses Cloudflare Workers to run its backend service, and Anthropic's Claude API to generate the AI teacher's replies — see "AI Conversation practice" above for exactly what's sent to them. Neither receives your name, email, or any other personal identifier — only your message content, conversation history, completed-lesson list, and the random installation identifier.

Fonts & bundled data

CiaoSpeak bundles two open-licensed third-party resources directly in the app, rather than downloading them, so the app works fully offline:

  • The Noto Sans TC typeface (Copyright 2014-2021 Adobe, with Reserved Font Name "Source"), licensed under the SIL Open Font License, Version 1.1.
  • Character stroke-order data, trimmed from the open "Make Me a Hanzi" project, licensed under the Arphic Public License.

Both licenses permit this use and redistribution; neither imposes any obligation on you as a user of the app.

Children's privacy

CiaoSpeak is not directed at children under 13, and we do not knowingly collect personal information from children. Since the app does not collect personal information from any user, this applies regardless of age.

This website

ciaospeak.app itself is a static site hosted on Cloudflare Pages. Two things on it involve your data:

  • The launch waitlist. If you enter your email in the "Get notified" form, it is collected and stored by Kit (kit.com), our email provider, and used solely to send you CiaoSpeak launch and product updates. Every email includes an unsubscribe link; unsubscribing removes you from the list.
  • Analytics. The site uses Cloudflare Web Analytics, which is cookieless: it sets no cookies, does not fingerprint you, and does not track you across other sites. We see aggregate page-view counts, not individual visitors.

Like any website, the hosting infrastructure (Cloudflare) processes standard technical request data (such as IP addresses) to serve pages and protect against abuse — see Cloudflare's privacy policy.

Changes to this policy

If this policy changes, we'll update the "Last updated" date shown above, the copy in the app's Settings > Privacy Policy screen, and this page.

Contact

Questions about this policy can be sent to [email protected].