River Lang Privacy Policy
Effective: October 14, 2026 Developer: [developer name as shown in the App Store and Google Play] Contact: support@riverlang.app
River Lang is a language-learning app: a reader with tap-to-translate, spaced-repetition flashcards, text-to-speech and an AI assistant. This policy explains what data the app processes, why, where it goes and how to delete it.
In short
- We do not sell data, show no ads and embed no third-party analytics, tracking or crash reporting; the app sends no push notifications. Fonts are bundled with the app and are not downloaded from anywhere.
- Your books, flashcards, notes, images and review history are stored on your device. They are not uploaded to our server.
- Our server receives only what a feature you use needs (for example, a word to translate with AI) plus an anonymised cost log.
1. What data and why
1.1. Account
- On first launch the app creates an anonymous account — a random identifier with no name or email. It is used to count daily and monthly limits of features that cost us money (AI, speech, text recognition, image search) and to protect the service from abuse.
- If you sign in with an email address, we store it to send sign-in emails and link your account to it.
- Stored at: Supabase (servers in Japan, region ap-northeast-1).
1.2. Usage counters
- For limits we store the number of requests by type (day, month) and request-rate marks, linked to your account identifier. Request texts are not stored in these counters.
- To track our costs we keep an anonymised log: action type, model, number of tokens or characters, cost. It contains no account identifier and no texts.
1.3. Texts processed by AI
When you tap a word, ask for a phrase breakdown, ask the assistant, fill in a card or use text-to-speech, the relevant text (the word, phrase, surrounding sentence, your question) is sent through our server to the model provider:
- Alibaba Cloud Model Studio (DashScope), Singapore region — translation, explanations, assistant answers, speech synthesis.
We do not use these texts to train models and do not keep them on our server, with three exceptions:
- a shared speech cache: the audio of a phrase is stored without any account link so the same phrase in the same voice is not synthesised again;
- a shared meaning cache: the translation of a single word or a short phrase (up to 20 characters) and character meanings are stored without any account link for no more than 30 days, so the same word is not translated again; long selected passages are never cached;
- the image search cache (section 1.5).
Translation from the built-in dictionaries and the phone's own voice work without sending any text.
1.4. Text recognition from photos and PDF pages
Only after your separate consent, the photo or page is sent through our server to:
- Google Cloud Vision (Google LLC);
- fallback — OCR.space (a9t9 software GmbH). The image is not stored on our server; the recognised text stays on your device.
1.5. Image search for flashcards
The search query (usually the word's translation) goes through our server to Pixabay, Wikimedia Commons or Openverse (WordPress Foundation). Source responses are kept in a shared cache for at most 24 hours, without any account identifier. The sources see our server, not your device. The chosen image is saved on your device with the author's name and licence.
1.6. Requests made directly from the device
- Fallback translation (when AI is unavailable): the word is sent to MyMemory (Translated S.r.l.).
- Free books catalogue: Project Gutenberg (gutenberg.org).
- The built-in browser opens websites you choose; their own policies apply. A query typed in the address bar goes to the search engine chosen in settings (for example Google, Bing, Baidu, Yandex, Naver). Site icons on the browser start page are loaded from those sites themselves.
- Downloads of dictionaries, examples and other data for offline use: from our storage (Supabase).
1.7. App updates
The app checks for and downloads updates from Expo servers (650 Industries, Inc., USA). They see your IP address, platform and app version; the content of your data is not sent.
1.8. Emails and contact
- Sign-in emails are sent through Resend from a riverlang.app address.
- Emails to support@riverlang.app are forwarded through Cloudflare Email Routing (Cloudflare, Inc.) to the developer's mailbox (Google Gmail).
1.9. Purchases (coming later)
Subscriptions will be paid through the App Store or Google Play; we never receive card details. Our server will check subscription status through RevenueCat. This section will be updated before purchases are enabled.
1.10. Crash reports
The app itself sends no crash reports. The App Store and Google Play may collect anonymised crash reports if you allowed this in your device settings; Apple's and Google's terms apply.
2. Stored only on your device
Books and documents, flashcards, review history, notes, card images, reading positions and settings. A data backup is created by you ("Save data copy"); the file stays with you. Deleting the app deletes this data from the device.
3. Legal bases (where required)
Performance of the contract (features you use), legitimate interest (abuse protection, cost tracking) and your consent (image recognition).
4. International transfers
Data is processed in Japan (Supabase), Singapore (Alibaba Cloud), the United States and other countries (Google, Resend, Expo, Cloudflare, image sources). We send only the minimum needed.
5. Retention
- Account and counters — until you delete your account.
- Image search cache — up to 24 hours.
- Shared speech cache — not linked to any person, kept indefinitely.
- Anonymised cost log — for accounting, kept indefinitely.
6. How to delete your data
- In the app: Settings → Account → Delete account. The account and profile are deleted from the server immediately; data on the device stays until you delete the app.
- Without the app: https://riverlang.app/delete-account or email support@riverlang.app from the address linked to the account.
7. Children
The app is not directed at children under 13. We do not knowingly collect their data.
8. Security
HTTPS only; provider keys are kept on the server only; table access is restricted by database rules.
9. Changes
We will announce material changes in the app or on this page.
10. Contact
support@riverlang.app