Privacy Policy
Last updated: June 2026
JLPT Mastery ("we," "us," or "our") operates the website at jlptmastery.com. This Privacy Policy explains how we collect, use, disclose, and safeguard your information when you use our service. Please read this policy carefully. By using JLPT Mastery, you agree to the collection and use of information in accordance with this policy.
1. Information We Collect
Account Information
When you create an account, we collect your email address and display name. If you sign in with Google OAuth, we receive your name, email address, and profile picture from Google. If you use Magic Link authentication, we collect only your email address.
Study Progress Data
We collect data about your learning activity, including practice session results, mastery states for vocabulary and grammar items, answer history, accuracy statistics, streak counts, and study preferences. This data powers the adaptive practice engine and mastery tracking features.
Usage and Analytics Data
We and our analytics providers collect standard usage and device data when you use the service, including pages viewed, features used, approximate location derived from your IP address, browser and device type, and referring URLs. We use this data in aggregate to understand usage trends and improve the service. See the Cookies and Third-Party Services sections below for details.
2. Authentication
JLPT Mastery uses Supabase Auth to manage user accounts. We support the following sign-in methods:
- Social sign-in (Google, GitHub, Discord) - When you sign in with a third-party provider, we receive your name, email address, and (where available) profile picture from that provider. We do not access your contacts, repositories, servers, or any other data held by these providers.
- Email and password - You may create an account with an email address and password. Passwords are hashed and managed by Supabase Auth; we never store them in plain text.
- Magic Link - We send a one-time login link to your email address. No password is required.
3. Cookies and Local Storage
We use cookies and browser local storage for two purposes:
- Essential - Authentication and session management cookies that keep you signed in. The service cannot function without these.
- Analytics - Google Analytics (GA4) and Vercel Analytics set cookies and collect usage data so we can understand how visitors use the site in aggregate. You can opt out of Google Analytics using the Google Analytics Opt-out Browser Add-on.
We do not use advertising cookies. You can configure your browser to refuse cookies, but some features of the service may not function properly.
4. How We Use Your Information
- Provide, operate, and maintain the JLPT Mastery service
- Power the adaptive practice engine and personalized study recommendations
- Track your mastery progress across vocabulary and grammar items
- Generate confusion pair analysis and targeted practice sessions
- Send service-related communications (account verification, security alerts)
- Monitor and analyze usage trends to improve the service
- Detect, prevent, and address technical issues
5. Third-Party Services
We use the following third-party services to operate JLPT Mastery:
Supabase
Database hosting and authentication. Your account data and study progress are stored in Supabase-managed PostgreSQL databases. Supabase complies with SOC 2 Type II.
Vercel
Application hosting and deployment. Vercel serves the JLPT Mastery web application and processes API requests. Vercel is SOC 2 Type II compliant.
Cloudflare
DNS management and CDN. Cloudflare routes traffic to our servers and provides DDoS protection. Some request metadata (IP addresses, headers) may be processed by Cloudflare in transit.
Google Analytics
Website analytics. We use Google Analytics (GA4) to measure aggregate site usage and improve the service. Google receives usage and device data and sets analytics cookies. See Google's Privacy Policy.
Vercel Analytics
Traffic and performance analytics provided by Vercel, used to monitor page views and Core Web Vitals in aggregate.
Groq
AI inference. When an explanation is generated for a practice answer, the relevant vocabulary or grammar item, the option you selected, and the correct answer are sent to Groq to produce the explanation. We do not send your name or email to Groq.
Resend
Transactional email delivery. When you contact us or submit a form, the message and the email address you provide are sent through Resend to reach our support inbox.
6. Data Retention
We retain your account data and study progress for as long as your account is active. If you delete your account, all associated data held in our application database - including practice history, mastery states, and personal information - is permanently deleted within 30 days. Data held by third-party analytics providers is retained according to their own policies, and anonymized, aggregated statistics (e.g., total sessions completed across all users) may be retained indefinitely.
7. Your Rights
You have the following rights regarding your personal data:
- Access - You can view your study data and account information through the dashboard and profile pages at any time.
- Deletion - You can delete your account and all associated data from the account settings page. Account deletion is permanent and cannot be undone.
- Export - You can request an export of your personal data by contacting us at support@jlptmastery.com.
- Correction - You can update your display name and profile information through the profile settings page.
8. Data Security
We implement appropriate technical and organizational measures to protect your personal data. All data is transmitted over HTTPS. Authentication tokens are handled securely through Supabase Auth. However, no method of electronic transmission or storage is 100% secure, and we cannot guarantee absolute security.
9. Children's Privacy
JLPT Mastery is not directed to children under 13, and you must be at least 13 years old to create an account. We do not knowingly collect personal information from children under 13. If you believe a child under 13 has provided us with personal information, please contact us at support@jlptmastery.com and we will delete it.
10. Changes to This Policy
We may update this Privacy Policy from time to time. We will notify you of any material changes by posting the updated policy on this page and updating the "Last updated" date. Your continued use of the service after changes are posted constitutes acceptance of the revised policy.
Contact Us
If you have any questions about this Privacy Policy, please contact us at support@jlptmastery.com.