Privacy Policy - Anjuvo

Anjuvo Privacy Policy

Last updated: 29 September 2026

Overview

Anjuvo is based in the Netherlands and builds language learning apps, including Learn Farsi, Learn Dutch, and future Anjuvo apps. This Privacy Policy explains what data our apps collect, why we collect it, how it is processed, and what choices you have.

We design Anjuvo apps to collect only the data needed to provide learning features, sync progress, process subscriptions, improve the apps, and fix bugs.

Contact: hello@anjuvo.com

Accounts and Authentication

Anjuvo apps may automatically create an anonymous account for you through Firebase Authentication. No sign-up is required.

You may optionally link your anonymous account to an email address, Apple ID, or Google account to enable cloud sync across devices or restore your account. If you link an account, Firebase Authentication may receive and store your email address and, where provided by Apple or Google, your display name.

Data We Store in the Cloud

When cloud sync, account features, purchases, feedback, or notifications are used, we may store the following data in Google Cloud Firebase under your user ID:

  • Learning progress, including word-by-word SRS state, review timestamps, attempt counts, difficulty scores, lesson scores, path progress, and daily routine progress
  • Profile settings, such as your selected interface language and base language
  • Cloud sync metadata, such as update timestamps, content versions, and sync status
  • Subscription entitlement status synced from RevenueCat
  • Push notification tokens, if you enable server-sent notifications
  • Feedback submissions, including selected issue, rating, lesson or content context, page number, exercise type, and related diagnostic context
  • If you use Mina, the AI conversation coach: your speaking-time balance and a record of each grant or purchase of speaking time
  • If you use Mina: a usage record for each conversation and each turn — duration, which AI models ran, the lesson and goal practised, and the cost of processing it — without the words that were said. The per-turn records are deleted automatically after 30 days
  • If you use Mina: what each conversation showed about your progress, synced with the rest of your progress — whether the lesson's goal was met, which of the lesson's words you used or missed, and the types of mistakes, without any sentence you or Mina said. The transcript and recap of a conversation are not uploaded
  • If a message in a conversation with Mina is blocked by the safety check described below: which side it came from and the category, never the text

Cloud data is protected by Firebase security rules designed to isolate each user's data from other users.

Data Stored Only on Your Device

Some data is stored locally on your device and is not synced unless a feature specifically requires cloud processing. This may include:

  • Optional profile name and age entered in Settings
  • App preferences, including sound, music, reminders, quiz settings, child mode, daily routine settings, and SRS configuration
  • Downloaded word databases, images, audio, and offline content packs
  • Custom learning sets, favourites, cached lesson data, and local progress cache
  • Temporary audio recordings before they are submitted or deleted
  • Your recent conversations with Mina (up to the last twelve), including the full transcript and the recap
  • The personal facts Mina remembers about you from earlier conversations (up to eight), which you can view and clear in her settings

Deleting the app may remove locally stored data, depending on your device and platform settings.

Speaking Practice and AI Speech Checks

Some speaking activities are local only, such as recording yourself and listening back.

For AI speech feedback, the app records a short audio clip on your device when you choose to use the feature. When you submit the recording, the clip is uploaded to our Firebase Cloud Function and sent to OpenAI for speech-to-text transcription and answer checking.

We may send:

  • The audio clip
  • Expected target-language phrase or answer
  • Expected transliteration or romanisation, where applicable
  • Lesson or exercise context
  • Segment index or exercise identifier
  • Selected and base language
  • Audio duration
  • Technical file information such as MIME type and file name

The service returns a transcript, transliteration, match score, pass/fail result, and short feedback.

We do not use your recordings to identify you, build a voice profile, or train our own speech model. We do not store submitted audio clips in Firestore as part of your learning profile. Temporary recordings on your device are deleted after submission, cancellation, or when the speaking session ends.

Speaking-check results, such as pass/fail outcome and attempt count, may be logged as analytics events.

Mina, the AI Conversation Coach

Learn Farsi includes Mina, an AI conversation coach you talk to out loud. She is part of the paid plans and the free trial, and she only runs when you start a conversation with her. Each turn is push-to-talk: nothing is recorded until you hold the button.

What happens to one turn of a conversation:

  • Your recording is sent to our Firebase Cloud Functions in the EU (europe-west1) and on to OpenAI, which turns it into text. The same happens when you answer in your own language.
  • That text is sent to OpenAI together with the instructions for the conversation, which can include: the recent lines of the conversation, the lesson and its goal, your level and base language, the name you asked her to call you, if you set one, a few of the words and kinds of mistakes you have been working on, and up to four personal facts Mina remembers from earlier conversations (for example that you are learning for your partner's family). OpenAI writes Mina's reply.
  • Before Mina answers, the text of what you said and the text of her reply are checked by OpenAI's moderation service, so that she never says or accepts clearly harmful content. If something is blocked, we record only which side it came from and the category.
  • Mina's reply text is sent to Google Cloud Text-to-Speech, which produces her voice. Your own voice is not sent there. Generated replies may be cached so the same sentence is not generated twice; the cache is not linked to your account, but a reply can contain the name you asked her to call you or something you told her.
  • When you say one of the lesson's practised phrases, your recording and the phrase you were aiming for are also sent to Google's Vertex AI (Gemini) for a pronunciation reading. This runs in Google's global infrastructure, which may be outside the EU.

After a conversation, the lines you said (never Mina's, never audio) are sent once to OpenAI to pick out personal facts worth remembering. Those facts are stored only on your phone, not on our servers. You can see them, and clear them, in Mina's settings under What Mina remembers.

Recordings are held in memory while a turn is processed and are not stored by us. The temporary recording on your phone is deleted as soon as it has been sent. The full transcript and recap of each conversation stay on your phone. What is stored in the cloud is described above: your speaking-time balance, usage records without the words that were said, and what each conversation showed about your progress, which lets that progress follow you to another device.

When you agree to talk to Mina, or withdraw that agreement in her settings, we record it: your account ID, the version of the notice you saw, the language it was shown in, and the time. This record cannot be changed afterwards, and it is deleted when you delete your account.

We do not use conversations to identify you biometrically, build a voice profile, or train our own models. OpenAI and Google do not use this data to train their models. OpenAI may keep the text of a conversation for up to 30 days to monitor for abuse; the recordings it transcribes are not kept for that purpose. Google Cloud Text-to-Speech does not log the text it turns into speech. Google Vertex AI may keep a pronunciation request for up to 30 days to monitor for abuse, and holds it in memory for up to 24 hours as a cache.

You can end a conversation at any time, and it then costs only the speaking time used. Please do not share sensitive personal information with Mina.

AI-Generated Lessons

If you use features that generate lessons from text, prompts, or custom situations, the text you provide may be sent to our Firebase Cloud Functions and to OpenAI to generate lesson material.

The request may include your selected language, level, lesson settings, request identifiers, and the text you entered. You should not enter sensitive personal information into AI-generated lesson prompts.

Generated lesson content may be stored locally on your device and may be subject to rate limits, abuse-prevention checks, or temporary processing logs.

Personalised Learning and Automated Adaptation

Anjuvo apps use spaced repetition (SRS) and related algorithms to adapt the difficulty and timing of exercises based on your past performance. This personalisation is designed to optimise your learning experience. It does not produce legal effects or similarly significant consequences for you. No decisions are made about you as a person based on this processing.

Analytics Events We Collect

We use Firebase Analytics to understand how users engage with the app, improve lessons, identify confusing flows, and measure learning outcomes at an aggregate level.

Analytics events are linked to Firebase pseudonymous identifiers, not directly to your name or email address.

Events may include:

  • Lesson activity: lesson started, completed, abandoned, score, duration, lesson type, lesson and path IDs, and step index
  • Daily routine activity: routine started or completed, selected mode, skipped stages, duration, and number of words shown
  • Vocabulary summaries: words seen, learning, mature, or needing improvement
  • Speaking practice results: pass/fail result, attempt count, and grading mode
  • Coaching sessions: session started or ended, lesson, duration, speaking time, number of turns and misheard turns, whether the lesson's goals were met, and your base language — never what was said
  • Onboarding activity: steps viewed, completed, skipped, abandoned, and timing
  • Streaks and milestones: day streaks, lesson milestones, and first lesson completed
  • Offline downloads: download started, completed, or blocked; content type, item ID, word count, and Wi-Fi-only setting
  • Cloud sync events: sync completed or failed, linked provider, item counts, and failure reason
  • Subscription events: trial started and subscription status changes
  • Practice games: memory game level, pair count, score, mistakes, and duration
  • App engagement: daily minutes logged, content exhaustion, and catalog or detail pages opened

We do not intentionally include your name, email address, raw voice recordings, or free-form personal messages in analytics events. Analytics may include technical identifiers generated by Firebase, device and app information, and learning-related event parameters.

Analytics are not used for advertising.

Feedback You Submit

If you send feedback inside the app, we may store the selected issue, rating, lesson or content context, page number, exercise type, elapsed time, and your anonymous user ID. Feedback submissions are retained for a maximum of 24 months after submission, or until no longer needed to investigate the reported issue, whichever comes first.

Feedback on a conversation with Mina can include the issue you picked, an optional note, the lesson and length of the conversation, and — only if you choose a specific reply — that one exchange: your line and Mina's reply, up to 500 characters each. Nothing else of the conversation is sent.

This helps us identify broken content, confusing exercises, or quality issues. Please do not include sensitive personal information in feedback.

Notifications

Daily learning reminders may be scheduled locally on your device.

For server-sent notifications or inbox messages, the app may store a Firebase Cloud Messaging token linked to your anonymous user ID. You can disable notifications in the app settings or your device settings.

Third-Party Services

Firebase and Google Cloud are used for Authentication, Cloud Firestore, Cloud Functions, Firebase Analytics, Crashlytics, Cloud Messaging, App Check, and security-related protections.

Crashlytics collects crash reports and error diagnostics, which may include device model, operating system version, app version, stack traces, and technical state needed to diagnose crashes.

Firebase privacy information: https://firebase.google.com/support/privacy

OpenAI is used for AI speech-to-text, for Mina's replies and for picking out the facts she remembers, and for AI lesson generation features. Audio clips, conversation turns, or text prompts are sent to OpenAI only when you use those AI-powered features.

Google Cloud Text-to-Speech is used to produce Mina's voice from her reply text. Google Vertex AI (Gemini) is used for the pronunciation reading of a practised phrase during a conversation with Mina, which includes your recording. Both are part of Google Cloud, covered by the Google Cloud data processing terms: https://cloud.google.com/terms/data-processing-addendum

OpenAI privacy information: https://openai.com/policies/privacy-policy/

OpenAI API data controls: https://platform.openai.com/docs/guides/your-data/

RevenueCat manages subscription status and purchase entitlements. It may receive your anonymous app user ID, product identifiers, purchase history, entitlement status, country or region, and technical device and app information.

Payment card details are handled by Apple or Google, not by Anjuvo.

RevenueCat privacy information: https://www.revenuecat.com/privacy

Apple Sign-In and Google Sign-In are used only if you choose to link your account. Your email address and name, where provided, are passed to Firebase Authentication and stored as your account identity.

Legal Bases

Where GDPR applies, we process data based on one or more of the following legal bases:

  • Performance of a contract: to provide the app, learning progress, subscriptions, sync, and account features
  • Consent: for optional permissions such as microphone access, notifications, AI coaching sessions, and certain account-linking choices
  • Legitimate interests: to improve lessons, understand usage, prevent abuse, maintain security, and fix bugs. Our legitimate interest in these cases is to provide a reliable, high-quality learning service and to protect the security and integrity of the app. We have considered the impact on users and concluded that these purposes do not override users' fundamental privacy interests, given that data is pseudonymous, not used for advertising, and limited to what is necessary.
  • Legal obligations: to comply with applicable billing, tax, consumer protection, or regulatory requirements

Data Retention

We retain data only as long as needed for the purposes described in this policy.

  • Cloud learning data: retained until you delete your account or request deletion
  • Local app data: retained on your device until deleted by you, the app, or your operating system
  • Firebase Analytics: retained according to our Firebase Analytics retention settings, currently up to 14 months
  • Crashlytics reports: retained according to Firebase Crashlytics retention settings, commonly up to 90 days
  • Feedback submissions: retained for a maximum of 24 months after submission, or until no longer needed to investigate the reported issue
  • Push notification tokens: retained while notifications are enabled or until they become invalid or are deleted
  • Temporary speech recordings: deleted after submission, cancellation, or session cleanup, unless temporarily retained by infrastructure providers for security, abuse prevention, or operational purposes
  • Purchase records: retained by RevenueCat, Apple, or Google as needed for billing, entitlement, fraud prevention, tax, and legal purposes
  • Mina conversations: recordings are not stored by us; transcripts, recaps and remembered facts stay on your device until you delete them or the app
  • Mina's per-turn usage records: deleted automatically after 30 days. Per-conversation usage records, progress records and your speaking-time balance: retained until you delete your account
  • Mina's cached voice audio: not linked to your account, and kept until we clear the cache
  • Data sent to OpenAI and Google for Mina: not used by them for training; kept for up to 30 days at most, for abuse monitoring only, as described in the Mina section
  • Trial-abuse record: a pseudonymised hash of a store subscription, without any user ID, kept after account deletion for as long as it is needed to stop the same trial being claimed twice

International Processing

Anjuvo is based in the Netherlands, but our service providers may process data in other countries. Where required, we rely on appropriate safeguards such as data processing agreements and standard contractual clauses.

For Mina specifically: our Cloud Functions run in the EU, OpenAI processes data in the United States, and the pronunciation reading runs in Google's global infrastructure, which may be outside the EU. These transfers rely on the providers' data processing agreements and standard contractual clauses.

Your Rights

If you are in the EEA, UK, or another region with applicable privacy rights, you may have the right to:

  • Access your personal data
  • Correct inaccurate data
  • Request deletion
  • Request export of your data
  • Object to or restrict certain processing
  • Withdraw consent where processing is based on consent
  • File a complaint with your local data protection authority

To exercise your rights, contact: hello@anjuvo.com

You can also delete cloud data through the app: Settings → Account → Delete Account

Deleting your account removes cloud learning data linked to your Firebase user ID. It does not automatically cancel an active App Store or Google Play subscription. Subscriptions must be managed through the relevant store.

This includes everything linked to Mina in our cloud: your speaking-time balance, the usage records and progress records of your conversations, and any feedback you sent about a conversation.

To prevent abuse of the free trial (for example cancelling, deleting the account and restoring the same trial on a new account to get its speaking time with Mina again), we keep one record per store subscription after an account is deleted. It holds a pseudonymised hash made from the store, the product and the subscription's original purchase date, plus how much trial speaking time was granted and when. It contains no user ID, name or email address, and it is used only to check whether that subscription's trial speaking time has already been given.

Some provider logs, analytics, crash reports, billing records, or security records may remain for their normal retention periods where legally permitted.

Children

Anjuvo apps are intended for users aged 16 and older. Users under 16 may use them only with the consent of a parent or guardian. We do not knowingly collect personal data from children under 16 without that consent.

Mina, the AI conversation coach, is intended for users aged 16 and older. Users under 16 may talk to Mina only with the consent of a parent or guardian. Child Mode turns Mina off.

Child mode is a display and content preference. It does not by itself change the data collected by the app.

If you believe a child under 16 has used the app and provided personal data without a parent's or guardian's consent, please contact us at hello@anjuvo.com and we will take steps to delete the relevant data.

Security

We use Firebase Authentication, Firebase security rules, App Check, and service-provider security measures to protect app data. No system can be guaranteed completely secure, but we take reasonable technical and organisational steps to protect user data.

Changes to This Policy

We may update this Privacy Policy when the app changes, when providers change, or when legal requirements change. Material changes will be noted by updating the date at the top of this page.

Contact

Anjuvo

Prinses Amaliahof 39

2461 VV Ter Aar

The Netherlands

Email: hello@anjuvo.com