Privacy Policy
Last updated: June 27, 2026 · Effective immediately
TL;DR — Your data stays on your device. Japan Learning App is built offline-first. Your progress, quiz results, and learning data are stored locally in your browser’s localStorage using AES-GCM encryption. We do not sell, share, or upload your personal learning data to any server.
1. Introduction
Welcome to Japan Learning App (“we”, “our”, or “us”). We are committed to protecting your privacy and being transparent about the minimal data we interact with. This Privacy Policy describes our practices for the Japan Learning App website at https://japan-mee.vercel.app and the Android application distributed via Google Play.
By using our services, you agree to this Privacy Policy. If you disagree, please discontinue use of the app.
2. Data We Store Locally (On Your Device)
All learning-related data is stored exclusively on your device using the browser's localStorage API. We never transmit this data to our servers. The following data may be stored locally:
- Learning Progress — completed lessons, quiz scores, EXP points, and streak counts
- SRS Data — Spaced Repetition System cards with review schedules for Kanji and vocabulary
- Preferences — theme (dark/light), display settings, JLPT level selection
- Achievement Data — badges earned, milestones reached
3. Data We Collect on Our Servers
Our servers collect minimal operational data required to keep the service running reliably and securely:
- Server Logs — IP address, request path, timestamp, HTTP status code. Retained for up to 30 days for security monitoring. These logs are never linked to your personal identity.
- Rate Limit Counters — Anonymous request counts stored in Redis (Upstash) to prevent API abuse. Reset every 60 seconds. Contains no personal information.
- Error Logs — If a JavaScript error occurs, an anonymised error report (message + stack trace, no user data) may be sent to our
/api/log-errorendpoint to help us fix bugs.
We do not collect: names, email addresses, payment information, precise location, contacts, or any other personally identifiable information (PII).
4. Third-Party Services
We use a small number of trusted third-party services to deliver the app. Each has its own privacy policy:
- Vercel (hosting) — may collect standard web server logs. vercel.com/legal/privacy-policy
- Upstash Redis (rate limiting) — stores anonymous request counters. upstash.com/privacy
- Google Fonts (typography) — fonts are loaded from Google servers; Google may log the request. policies.google.com/privacy
- Google Play (Android distribution) — subject to Google Play's own data collection practices.
5. Cookies & Local Storage
We use no tracking cookies. We use localStorage solely to persist your learning progress locally on your device. No cross-site tracking or advertising cookies are used.
You can clear your local data at any time via your browser settings (Clear Site Data) or through the app's Settings → Reset Progress option.
6. Data Security
We take security seriously. Here is what we do to protect your data:
- Local progress data is encrypted with AES-GCM 256-bit encryption using the Web Crypto API before being written to localStorage
- All network connections use HTTPS/TLS (enforced via Strict-Transport-Security header)
- API endpoints are protected by rate limiting (100 requests/minute per IP via Redis)
- Security headers: CSP, X-Frame-Options DENY, X-Content-Type-Options nosniff, Permissions-Policy
- Input validation using Zod schemas on all API routes
7. Your Rights (GDPR / CCPA)
Because we store no personal data on our servers, most GDPR/CCPA rights are automatically satisfied. Specifically:
- Right to Access — Your data lives in your browser. Open DevTools → Application → Local Storage to view it.
- Right to Deletion — Clear your browser's localStorage or use Settings → Reset Progress. Server logs are automatically deleted after 30 days.
- Right to Portability — Future update: export progress as JSON.
- Do Not Sell — We do not sell any data. Ever.
8. Children's Privacy
Japan Learning App is designed for users aged 13 and above. We do not knowingly collect personal information from children under 13. If you believe a child under 13 is using the app, please contact us and we will take appropriate action. Users aged 13–17 should have parental consent.
9. Changes to This Policy
We may update this Privacy Policy from time to time. When we do, we will update the “Last updated” date at the top of this page. Continued use of the app after changes constitutes acceptance of the updated policy.
10. Contact Us
If you have any questions, concerns, or requests regarding this Privacy Policy, please contact us: