Privacy Policy

Last updated: June 24, 2026

Nemi is a Japanese language learning app that uses AI-powered conversations to help you practice. This document explains what data Nemi collects, how it is used, and what control you have over it.

1. What data we collect

Account information

You can start using Nemi without creating an account. When you first open the app, an anonymous session is created automatically so you can try the chat experience. Anonymous users are limited to 30 messages before being asked to create an account.

When you create an account, we collect your email address for authentication. We use a passwordless login system. You receive a one-time code via email to verify. If you upgrade from an anonymous session, your existing data is preserved under the same account.

During onboarding, you may provide:

  • A display name
  • Your choice of AI practice partner

Conversation data

As you use the app, we store data about your learning activity:

  • Conversations and messages:The full text of your practice conversations with AI characters, including both your messages and the AI's responses. If you use the image vocabulary feature (Pro only), photos you send are transmitted to the AI service to identify the object but are notstored on our servers — they are used for the single API call and then discarded.
  • Vocabulary and mastery: Japanese words you have encountered in conversations, how often you have seen and correctly used them, a mastery level (new/learning/weak/mastered), and a spaced-repetition review schedule used to decide which words your AI partner reinforces.
  • Mistakes: Grammar and vocabulary errors identified during conversations, along with corrections and explanations.

2. How we use your data

Personalizing AI conversations

Your display name and vocabulary state (which words you've mastered, are learning, or need to review) are included in the system prompt sent to the AI for each conversation. This allows the AI to match its language complexity to what you actually know and reinforce words due for review.

Daily check-in messages

A scheduled server task runs once a day and, if you haven't practiced that day, inserts a short template-based message from your AI partner into your conversation. These messages are generated from templates on our server. No AI service is involved and no additional data is shared with third parties.

Daily reminders

If you enable daily reminders, the app registers for push notifications and stores your device's push token in our database so we can deliver reminders. If you later disable reminders, the token is removed from our servers. Push notifications are delivered through Expo's push notification service.

Rate limiting

We track the number of AI requests per user per minute and per day to prevent abuse. This data is automatically cleaned up after 2 days.

3. Third-party services

Supabase (backend infrastructure)

We use Supabase for authentication, database storage, and serverless functions. Your account data, learning progress, and conversation history are stored in Supabase's cloud infrastructure.

OpenRouter and Google (AI conversations)

AI conversations are processed through OpenRouter, which routes requests to Google's Gemini language model. When you have a conversation, the message history and a system prompt containing your vocabulary state and the partner's personality are sent to these services.

Your email address and user ID are not sent to OpenRouter or Google. The server-side function that processes these requests authenticates you separately and forwards only the conversation payload. The AI model is enforced server-side and cannot be changed by the client.

If you use the image vocabulary feature, the photo you send is included in the API request so the AI can identify the object and teach you the Japanese word. The image is not stored on our servers or in your conversation history — it is only used for that single request.

PostHog (analytics)

We use PostHog to understand how the app is used and improve the learning experience. PostHog receives your anonymous Nemi user ID, your partner character choice, and event data such as which screens you visit, when you send a message (message length only, not content), and subscription actions. Your email address and conversation content are not sent to PostHog.

RevenueCat (subscriptions)

We use RevenueCat to manage in-app subscriptions. When you subscribe, RevenueCat receives your anonymous Nemi user ID and purchase history from Apple. Your email address and conversation content are not shared with RevenueCat. Subscription status (active, trial, expired) is synced back to our database via a server-side webhook so the app can check your entitlement.

4. Data storage and security

Server-side

All database tables use row-level security. Every query is scoped to your authenticated user ID. You can only read and modify your own data. There is no admin dashboard or way for other users to access your information.

Authentication tokens are stored on your device using encrypted local storage (iOS Keychain and Android Keystore).

5. Your rights and controls

View your data

You can view all of your data within the app: your profile in Settings and your conversation history on the home screen.

Edit your data

Profile settings (display name, correction preference) can be changed at any time in Settings.

Delete your data

  • Conversations: You can clear all conversation history from Settings.
  • Account and all associated data: You can delete your account from Settings in the app. This permanently removes your profile, all conversations and messages, vocabulary, mistakes, streaks, and rate limit records. All tables use cascading deletes tied to your user ID.

Data portability

If you would like a copy of your data, contact us and we will provide an export.

6. Children's privacy

Nemi is not directed at children under 13. We do not knowingly collect personal information from children under 13.

7. Changes to this policy

We may update this policy from time to time. If we make significant changes, we will notify you through the app.

8. Contact

If you have questions about this privacy policy or your data, contact us at: support@trynemi.app