Privacy Policy
Effective date: August 20, 2026
LinguaBattle ("the app", "we") is a language-learning app for iPhone, with a companion browser extension for Chrome. This policy explains what information the app handles, why, and the choices you have. The short version: there are no ads, no third-party advertising or analytics SDKs, and we do not sell your data. Most of your learning data lives on your device; cloud processing happens only for the features that need it, described below.
Data you don't need to share
You can use the free core of LinguaBattle without creating an account. In that case your learning content — goals, scenarios, dialogues, flashcards and review history — is stored locally on your device and is not sent to us.
Account information
If you sign in, authentication is handled with Sign in with Apple. We receive a pseudonymous Apple account identifier and, if you choose to share it, your email address (Apple's "Hide My Email" is fully supported). We use this only to identify your account, sync your data, and validate your subscription. We do not use your account email for marketing — the launch waitlist described below is a separate list you have to opt into yourself.
Launch waitlist (this website)
Before LinguaBattle is released, this website offers a waitlist so we can tell you when it is available. This is entirely optional and is separate from any app account.
- What we store — the email address you type in, the date you signed up, which button on the page you used, and a record that you ticked the consent box. We do not store your name, and we do not store your IP address (we keep only a salted, one-way hash of it, used to spot automated signups).
- Why — solely to send you a notification when LinguaBattle launches. We will not send you anything else, and we will not share, sell or rent the list to anyone.
- Where — the list is stored on Cloudflare, in the same infrastructure that serves this site. Each new signup also sends an internal notification to our own support mailbox, which includes the current list; that mailbox is hosted by Fastmail and is only accessible to us.
- Spam protection — the signup form uses Cloudflare Turnstile to tell people from bots. Turnstile is loaded only once you interact with the form, and Cloudflare states that it does not use it to track individuals across sites.
- Opting out — every email we send carries a one-click unsubscribe link, and you can email us at any time to be removed. Once the launch email has gone out and you have unsubscribed, we delete the list.
Contact form (this website)
The website also has a contact form, so you can reach us without opening a mail app. Using it is optional — you can email support@linguabattle.app directly instead, and doing so gives us nothing this section doesn't describe.
- What we store — the message you write, the email address you give us for the reply, and the date you sent it. As with the waitlist, we do not store your IP address; we keep only a salted, one-way hash of it, used to spot automated submissions and to limit how many messages one sender can file at once.
- Why — solely to read and answer your message. A contact form submission does not put you on the launch waitlist or any other mailing list, and we will not use the address you give us for marketing.
- Where — the message is stored on Cloudflare, in the same infrastructure that serves this site, and is also forwarded to our own support mailbox, which is hosted by Fastmail and is only accessible to us. The forwarded copy is set to reply to the address you provided, so that answering it reaches you.
- Spam protection — the contact form uses Cloudflare Turnstile on the same terms as the waitlist form described above.
- How long — we keep messages while they are useful for support and follow-up, and delete them once they are not. You can ask us to delete your message and the address attached to it at any time.
Subscriptions
LinguaBattle Cloud is purchased through Apple. Payment is processed entirely by Apple; we never see your payment details. To activate Cloud features we receive and store subscription transaction information from Apple (such as product, transaction identifiers, expiry and renewal status) to verify your entitlement.
Cloud AI features
Some Cloud features send content to cloud AI services to generate a response. This happens only when you use the feature:
- Text — conversations, prompts and learning content you submit to features like Ask AI, Journeys and battle dialogue generation.
- Voice — audio recorded while you use speaking drills or voice questions, used for speech recognition and pronunciation feedback.
- Photos — textbook pages you choose to import, used to extract grammar patterns. Photo access uses the system picker; the app never scans your library.
These requests are routed through our own server and processed by our AI infrastructure providers — currently Alibaba Cloud (Qwen models), Google (Gemini models) and OpenRouter (DeepSeek models) — solely to produce the feature's response. We do not use your content to train models, and we do not permit these providers to use it for advertising.
Browser extension
The LinguaBattle browser extension (an early preview) turns Chinese video subtitles into study material: tap-to-define words, interactive transcripts, and practice modes. Everything below happens only while you are actively using the extension on a video page.
- Where it runs — only on the supported video and music sites it lists (YouTube, Netflix, Bilibili, iQIYI, WeTV, Viki, Youku, Spotify), plus any site you explicitly enable it on. It does not read your other tabs, does not track your browsing, and collects no browsing history.
- Free features stay in your browser — word segmentation and dictionary lookups run locally against dictionary data the extension downloads; no account is needed and no page content is sent anywhere for them.
- Subtitles and transcripts — subtitle text and basic video details (title, playback position) from the video you are studying are used to build the transcript. Translation and other AI features send that text through our server to the AI providers described under "Cloud AI features".
- Tab audio — when you start a live transcript for a video, the audio playing in that tab is streamed through our server to a speech-recognition provider to produce text. Capture starts only when you start it, stops when you stop it, and is used solely to produce the transcript.
- On-screen subtitle images — for videos with burned-in subtitles, you can turn on text recognition; cropped images of the subtitle area of the video are sent through our server for character recognition, solely to produce the subtitle text.
- Microphone — used only in speaking practice you start (the browser asks permission first), for speech recognition and pronunciation feedback on that recording.
- Saved words, lines and clips — words and subtitle lines you choose to save become part of your learning data, and short audio clips you attach to them are stored with your account so they sync like everything else (see "Cloud sync").
- Sign-in — the extension uses the same account as the app (see "Account information").
- Local companion connection — the extension can talk to an optional LinguaBattle app running on your own computer (at address 127.0.0.1); data exchanged on that path never leaves your machine.
Cloud sync
With LinguaBattle Cloud, your learning data (goals, scenarios, dialogues, flashcard scheduling state and related content) is stored on our servers (hosted on Cloudflare) so it can sync across your devices and be restored if you reinstall.
Usage limits
To keep AI features sustainable, we record aggregate monthly usage per account (for example, tokens processed or seconds of audio transcribed). These are counters used for fair-use limits and cost monitoring, not behavioral profiles.
What we don't do
- No advertising, and no ad tracking of any kind.
- No third-party analytics or tracking SDKs.
- No selling or renting of personal information.
- No access to your contacts, location, or photo library beyond photos you explicitly pick.
Data retention and deletion
Synced data is kept while your account is active. You can delete your account from Settings inside the app, which removes your account data from our servers. Deleting the app removes all locally stored data. You can also contact us (below) to request deletion.
Your rights
Depending on where you live, you may have rights to access, correct, export or delete your personal data. Contact us and we will honor these requests for all users, wherever you are.
Children
LinguaBattle is not directed at children under 13, and we do not knowingly collect personal information from them.
Changes
If this policy changes materially, we will update this page and its effective date. Continued use of the app after a change means the updated policy applies.
Contact
Questions or requests: support@linguabattle.app