Skip to content

Privacy Policy

What we collect, why, who helps us, how long we keep it, and your choices

Versão em português

1. Introduction and data controller

This Privacy Policy explains how KanaMastery ("we", "us") handles personal data when you visit kanamastery.com or use our apps and services (the "Service").

Data controller: Jaime Lourenço Jacob, trading as KanaMastery, a sole trader in Portugal, at Rua Padre António Vieira 38, 6DTR, 4710-412 São Victor, Braga, Portugal (NIF / VAT PT242549250), is the controller of your personal data. We follow the General Data Protection Regulation (GDPR) and Portuguese data protection law. Contact: support@kanamastery.com or hi@jlj.pt (see Contact).

We only use your data as described here. We do not sell your personal data.

Effective date: December 5, 2024 (first version)

Last updated: October 5, 2026

2. What we collect

Your account

  • Email address (required), and whether it is verified
  • Display name (optional, chosen by you)
  • Profile picture (optional): one you upload, the address of an image you link to, or your Google account photo if you sign in with Google
  • How you sign in (email and password, or Google), when you created the account and when you last signed in
  • When you accepted our Terms of Service and this Privacy Policy, which versions, and where (the sign-up form, or the notice when continuing with Google)
  • Your marketing email choice, and when and where you made it
  • A pending email change (the new address), while you confirm it
  • Your free trial: when it ends, and whether we have sent the email saying it is about to end

Signing in and security

  • Passwords: your password goes over an encrypted connection to our server, which passes it to our authentication provider (Google Firebase) to create your account or change your password. Firebase stores it hashed. We never store or log it.
  • Google sign-in is handled by Google; we receive your name, email address and profile photo.
  • Two-factor authentication: if you turn it on, your authenticator is registered with Firebase. (Accounts that set up two-factor authentication with our earlier system may still have an encrypted authenticator secret and hashed backup codes stored with us, until they set it up again.)
  • Sign-in session: a secure cookie keeps you signed in (see Cookies).
  • One-time links: for email verification, password reset and email change we store a random code with your email address and an expiry time (24 hours, or 60 minutes for password reset).

Your learning

  • Characters, words and kanji you have learned or mastered; XP, level, streak and daily goal
  • Game history: each game's type, score, accuracy, time and hints, and each answer (which item, which skill, how well you did, and whether you typed or chose)
  • Smart Review scheduling for each item (when it is next due and how well you know it), your daily review limit and holiday mode
  • Learning path results: placement tests and stage tests
  • Daily challenge results and weekly league points (see Leaderboards and competitions)
  • Your device's time zone offset, used to work out your day for streaks, reviews and competitions (not stored). If you turn on study emails, your time zone is stored so they arrive at the time you chose.

The welcome questions (optional)

On your first visit to Today we ask a few questions, each one skippable: your display name and whether your profile is public, your country and time zone, why you're learning, how much Japanese you know, how you heard about us, and whether you'd like tips and offers by email. We keep your answers with your account, with when you answered (or that you closed the questions). The time zone is also used for your study emails. We count the answers, without names, to see who is joining and where they found us.

What you create or send us

  • Custom quizzes (name, description, questions, settings, and whether you listed them in the community library) and your tags
  • Reports about a public quiz ("Report this quiz"): the reason, your message, and the quiz's name and description at the time. We tell you what we decided.
  • Problem reports ("Report a problem" in a game): the item, what you answered, your message and the page you were on. We read them to fix content.
  • Quiz ratings: after some finished sessions we ask how it went (👍 or 👎). We keep your rating, the game or quiz and the answer mode, your note if you add one after a 👎, and when we last asked and how many times you dismissed it (so we don't ask too often).
  • Roadmap votes (on the Feedback page): the items you voted for. Only the totals are public, never who voted. If you tick "Email me when this ships", we keep that with your vote and use it for that one email only; take your vote back to cancel it. Ideas you send from that page are support messages (below).
  • Messages you send us by email or through the contact form
  • A refund request (on the refund page, in Settings or through the contact form): your name, the email address for our reply, the purchase you name, your note, where and when you sent it, to end the plan, refund it and show we did.

People who answer a shared quiz

We store the name you type, your answers and your score, for the person who shared the quiz to see. We don't store your email or IP address with it. If you play signed in, your answers are also linked to your account, and your first attempt goes on the quiz's board (see Leaderboards). They are deleted when the quiz owner resets or deletes the quiz or deletes their account, or when you delete yours. You can also ask us to delete them (see Contact).

Membership and payments

  • Membership type (free, monthly, annual, lifetime), subscription status and billing period
  • Your Stripe customer and subscription ids. Card details go straight to Stripe and never reach our servers.
  • Records of payment disputes, if any (amount, reason, status)

Emails and settings

  • Study email choices (review reminders, the daily email): which ones you turned on, how often, the time and day, your time zone, when each was last sent, and when you switched each one on or off
  • Settings: theme, public profile, membership badge, game settings
  • The email delivery log: for each email we send you, whether it was delivered, bounced, reported as spam or unsubscribed (from Postmark), with a bounce's type and short description, its kind and when. Never its content, and never whether you opened it or clicked a link. A hard bounce or a spam report on a study or news email turns those emails off.

Support messages

  • What you write in the contact form and the topic you pick, the page you wrote from, and your browser.
  • Signed in: your account id, email address and name, and your plan and level, so we don't have to ask. Signed out: the email address (and name, if you give it) you want the reply sent to; Cloudflare Turnstile checks that you're a person.
  • Each message is emailed to our support mailbox (through Postmark), where we reply. We may keep short notes on what you asked and what we did, to help you next time.
  • Signed in, you can also write from inside the app (Help & contact, or “Report a problem”). Then the message also carries the app version you were using, and the conversation (your messages and our replies, never our notes) is kept with your account so you can read it and answer in Your messages. We tell you in the app, and by a push notification if you turned them on, when we reply.
  • Our internal notes on your messages and problem reports, and the record of how we handled them (who on the team, when), aren't in the download in Settings. You get them if you ask for them (your right of access, GDPR art. 15): we leave out only what would harm someone else, such as another person's details.
  • A screenshot, if you add one: the picture itself, to see the problem as you saw it. It is stored privately with Cloudflare (R2, in the EU); only you and we can open it. It is kept as long as the conversation (two years after its last message) and deleted with it, or with your account.
  • If you email us at support@kanamastery.com: the email arrives in our support mailbox (our EU mail host). Our server reads it there, every few minutes, without changing, moving or deleting it, and keeps it as a conversation in our support dashboard. We keep your address and the display name your email shows (only that name), the subject, the text you wrote (without the earlier messages quoted under it, and never the email's formatting), and pictures or PDFs you attach (up to three, stored privately with Cloudflare R2 in the EU; photos are re-encoded, so their location and device details are not kept). Other attachments are not kept by our server. We also keep the email's technical identifiers (its Message-ID and the ones it replies to, so your replies join the same conversation) and whether your provider's signature checked out (our server checks it against the key your provider publishes; our mailbox provider's authentication results are kept too, where it adds them), to spot forged senders. If your address is verified that way and an account uses it, we see that account's plan and level next to your email, to help you; the conversation stays in email and doesn't appear in that account. Automatic replies, bulk mail, messages that look automated and messages our mailbox provider scores as spam are discarded by our server (the original stays in our mailbox). Our replies are emailed (through Postmark), and a copy goes to our support mailbox, so the mailbox holds the whole conversation.

Notifications

  • In-app notices: what happened (a challenge taken, a quiz decision, your student discount, your weekly league result, our announcements), kept 90 days.
  • Push notifications, only if you turn them on for a device: a token for that device from Firebase Cloud Messaging, the device's browser name, when it was last used, which kinds you want, and how many news notifications we sent you today (news is at most one a day).

Friends and invites

  • Your friend code and invite link. Anyone you give them to sees your first name, level, streak and the program you're on when they open the link.
  • Your friends, requests and blocks, and when each was made. Your friends see your name and picture, level, streak, the program and chapter you're on, this week's league points and your duel record with them. You can remove or block anyone, and turn off being added ("Who can add me", on Friends or in Settings › Privacy).
  • Invites: who invited whom, when, the days the new account practised in its first 14 days, and the rewards given or taken back, to run the program and prevent abuse.
  • To spot accounts made to collect rewards, a one-way code (a salted hash) of the network you signed up or signed in from, never your IP address, kept 30 days; and, for a reward tied to a payment, whether a card was the same as the inviter's (Stripe tells us a card's fingerprint, never its number).
  • The friends feed (for some accounts while we try it): your news, written by us from what you do (a finished chapter, a new level, a streak milestone, a daily challenge score, a perfect set, a quiz you publish to the library), shown to your friends for 30 days, and the stamps your friends react with. Nobody writes messages. "Share my news with friends" (Settings › Privacy) is on unless you turn it off; turn it off and nothing more is published.
  • Friend streaks (for some accounts while we try them): who you have one with, and the last day each of you practised; nudges you send and receive (one a day per friend); this week's friend quest and whether you claimed it.
  • Reports you make about someone's name or picture.

Student discount (only if you apply)

  • With a school email: the address, only until you open its link (24 hours at most); after that we keep only its domain (such as ox.ac.uk).
  • With a proof: your school's name and country, and the photo or PDF you upload (a student card or enrolment letter). It is stored privately with Cloudflare (R2); only we can open it, and we delete it as soon as we have decided.
  • The decision, its date and when the discount ends, and a reason if we decline.

Keeping the Service safe

  • Rate limiting: to stop abuse we count requests per account, per email address or per IP address. We store only a one-way hash of these, never the IP address itself, and the counters are deleted automatically within 24 hours.
  • Sign-up check: Cloudflare Turnstile checks that a real person is signing up, or writing to us signed out (see Service providers).
  • Spam prevention: to find accounts created by bots, a score proposes accounts for a person to review, from signals such as the display name, the email domain, whether the email was verified and sign-ins (see Spam and bot accounts).
  • Moderation and our team's log: reports, our decisions and the statements of reasons we send, and a log of what our team did on an account (who, what and when), so every action can be checked.
  • Server logs: our hosting provider (Vercel) records requests (IP address, browser, pages, time) to run and secure the Service.
  • Error reports: when something breaks, we may receive a technical error report (see Better Stack under Service providers).

Anonymous counts

We count how often some things happen on the Service, such as a game started, a pricing page viewed, a checkout started or an error in the page, sometimes with a general detail (the type of game or the plan). Each count is only a number per day, per month and in total: it carries no account id, no cookie, no IP address and no browser details, and it can't be linked to you. These counts need no consent and are kept as totals. To block floods of fake counts, your IP address is used briefly, only in our server's memory, and is never stored.

Only with your consent

  • Analytics (Google Analytics): pages you visit, the device and browser, and learning events (game started, finished or left, hints, purchases, sign-ups). When you are signed in, analytics are linked to your account id and to your membership type, sign-up method and sign-up date.

None of these load until you agree in the cookie banner, and you can change your choice any time with "Cookie settings" at the bottom of every page.

4. How we use your data

  • Run the Service: your account, sign-in, progress, Smart Review scheduling, learning paths, daily challenges, weekly leagues and leaderboards, custom quizzes.
  • Payments: memberships, renewals, refunds and receipts, through Stripe.
  • Friends and invites: showing your friends what they can see of you, running invite rewards, and stopping accounts made to abuse them.
  • Notifications: in-app notices, and push notifications on the devices where you turned them on, for the kinds you chose (Settings › Notifications).
  • Service emails (through Postmark): email verification, password resets, email changes, welcome, payment and subscription emails, security notices (such as two-factor changes) and account deletion.
  • Service notices: a one-time email about a material change to the Service or to these policies, such as the notice when KanaMastery relaunched. It is about your account, not marketing, and is sent once.
  • The trial-ending email: one email, 1 to 3 days before your free trial ends, saying when it ends, if you aren't paying for a plan. It is a service message about your account (not marketing), sent once.
  • Study emails (only if you turn them on): review reminders (how many Smart Review items are due; only sent on days when reviews are due; daily or weekly) and the daily email (the kanji of the day, the word of the day and the daily challenge, once a day). You choose which and when; we use your time zone only to send them at that time. Every study email has a one-click unsubscribe link that works without signing in. We don't track whether you open them or click their links.
  • Marketing emails (only if you opt in): news, learning tips and offers. You choose this at sign-up or in the welcome questions (it is never pre-ticked) and can change it in your account settings. A choice made in the earlier version of KanaMastery isn't used: marketing emails need a yes given in this version (at sign-up, in the welcome questions, in your account settings, or on the screen shown the first time you sign in after the relaunch). To choose who gets one, we may use your plan, your trial, your level, when you last used KanaMastery and our own tags on your account. We keep a record that it was sent to you (for a year, or until you delete your account; none for people it was not sent to), and count the clicks on each of its links as a total only: never who clicked, and never whether you opened it.
  • Improve content and features: problem reports, the welcome answers (counted, to understand who is learning with us and how they found us), and analytics if you allow them.
  • Security: preventing fraud, spam accounts, abuse and unauthorised access.
  • Support: answering your messages and emails, with short notes on what you asked and what we did, so we can help you next time. Only we see them.
  • Legal: financial records, and responding to lawful requests.

5. Spam and bot accounts: a person decides

We make no decisions about you by automated means alone. To keep the Service free of bot sign-ups, a spam score proposes accounts that look automated, and a person on our team reviews the list and decides. Nothing is suspended automatically.

The signals the score uses: the display name (links, spam words, email addresses), whether the email bounced or was marked as spam (Postmark), whether its domain is on a list of disposable email services, whether many accounts were created at the same time, whether the email was verified (and unused verification emails), sign-ins (whether the account ever came back), whether it has a profile, and quiz names that look like spam.

What it reads only to leave accounts out: learning activity, payments and memberships, two-factor authentication and an uploaded profile photo. Anyone who has learned, paid, turned on two-factor authentication or uploaded a photo is never proposed. (An account with no learning activity at all scores slightly higher.)

If we suspend an account as spam, we keep a record of the decision (the account id, email address, the reasons and the date). Suspended bot accounts are deleted 30 days later if nobody contests it; after that we keep only the id and the date, to prevent repeat abuse. If you think your account was suspended by mistake, write to hi@jlj.pt: a person will review it and restore it.

6. Leaderboards and competitions

Your profile is private by default. Your name and picture only appear publicly if you turn on "Public profile" in your settings and have a display name.

  • Leaderboard: with a public profile, it shows your display name, picture, level, XP, accuracy, how many items you have mastered, and your membership badge (you can hide the badge).
  • Daily challenges and weekly leagues: everyone's results count toward the ranking, so ranks are fair. Only players with a public profile are shown by name and picture; others are counted but not named. Boards for past days and weeks stay viewable. Your entries are deleted when you delete your account. Resetting your progress does not remove past results.
  • Profile pictures you link to: if you use an image address from another website, people who view the leaderboards load that image from that website, which can see their IP address.
  • Shared quizzes: anyone with the link can open a quiz you make public. Your name is not shown with it.
  • "Beat my score" challenges: when you challenge a friend, the link carries your result on that quiz (how many right on the first try, and the time) and its question order. Signed-in players who take it are listed with their result; only public profiles are named. Challenges expire after 30 days, and yours (with the results in them) are deleted when you delete your account.
  • Quiz boards: each shared quiz has a board of signed-in players' first attempts (how many right on the first try, and the time). As for the other boards, everyone counts toward the ranking but only players with a public profile are named. Your entries are removed when you delete your account.
  • The community library: if you list a quiz there, anyone can find it, with its name, description, the lists it uses, its number of questions and how often it was played. Your name is not shown. Anyone signed in can report a public quiz; three reports take it out of the library until we review it (an automatic step), and we may remove a quiz that breaks our Terms. The quiz's owner gets a statement of reasons: the rule concerned, whether the step was automatic, and how to contest it.

You can turn your public profile off at any time; your name is removed from leaderboards within a few minutes. We recommend a nickname rather than your real name.

7. How long we keep data

While you have an account

We keep your account, learning data, quizzes, tags and reports until you delete them or your account. "Reset progress" deletes your progress, game history and Smart Review data (but not past competition results).

When you delete your account

We delete your profile, progress, game history, Smart Review data, competition entries and results, quizzes (with the answers people gave to them), tags, problem reports, quiz ratings, roadmap votes (taken off the totals), support messages (with their screenshots) and our notes on them, a student proof, one-time links, your uploaded picture and your sign-in account, straight away. You can't delete an account while a subscription is still being billed; cancel it first.

What we keep: Invoices and billing records (what was bought, when, the amount, the VAT and the invoice) are kept for 10 years, as Portuguese tax and commercial law requires. Everything else is kept to what the Service needs and is deleted with your account. For you, that means: if you ever paid, a short purchase record (your account id, Stripe customer and subscription ids, membership type and status, and the deletion date), your payments, refunds and refund requests, and any payment dispute records, for 10 years from the end of the year they belong to. Stripe keeps its own records under its policy.

Backups

Our database is backed up for disaster recovery. Deleted data disappears from backups when they expire, within 30 days.

Short-lived data

  • One-time links (verification, password reset, email change): deleted automatically about a day after they expire.
  • Rate-limit counters: deleted automatically about a day after they expire.
  • Emails: Postmark keeps records of sent emails for 45 days.

Kept by our providers

  • Google Analytics (with consent): event data is kept for the period set in our Google Analytics account, at most 14 months.
  • Student discount: a proof is deleted once we decide (and with your account); the decision and its dates are kept while you have an account.
  • Our team's log of actions on accounts: kept for 2 years.
  • Spam checks: the records of accounts set aside for review, and of suspensions, are deleted with the account, or 30 days after a suspension is lifted or ends; the record of each review batch is kept for 2 years.
  • A suspension: kept while the account is suspended.
  • Refund requests: kept for 10 years with the billing records; a request that matches no purchase, for 1 year.
  • Failed payments (which invoice, the amount, the attempt and the next retry; never card details): kept for 1 year, so we can help when a payment doesn't go through.
  • Payment disputes, and the records of a compensation we give (such as lifetime membership and refunds after an outage, and the email telling you): billing records, kept for 10 years.
  • Push notification tokens: deleted when you turn notifications off on that device, when the browser stops accepting them, or with your account.
  • A record of the emails we send you (which email and when, never its content): kept for two years, so we can help when one doesn't arrive. Deleting your account deletes it straight away.
  • The email delivery log (delivered, bounced, reported as spam or unsubscribed): kept for 1 year, to deliver service emails and to stop sending to addresses that don't work. Deleting your account deletes it straight away.
  • Support messages: kept for two years after the last message in the conversation, then deleted automatically, with any screenshot sent in it. Deleting your account deletes the ones you sent signed in, their screenshots, and our notes, straight away. Email you send us is kept the same way (two years after the last message in the conversation, with its attachments); deleting your account removes its link to your account and the name kept with it. A record of each email handled (its identifier, and which conversation it went to) is kept 30 days, so an email our server reads again is not kept twice. Emails and replies also stay in our support mailbox (our EU mail host) as ordinary email; ask us and we'll delete them.
  • Server logs and error reports: kept by Vercel and Better Stack for a limited time under their own policies.

On your device

Data stored in your browser stays until you clear it (see Cookies).

8. Service providers

These providers process personal data for us, only to provide their service, under data processing terms. Those marked "with your consent" only receive anything if you allow it in the cookie banner.

Google Firebase (Google Cloud)

Purpose: Sign-in (email and password, Google sign-in, two-factor authentication), our database (Firestore), and push notifications if you turn them on (Firebase Cloud Messaging).

Data it receives: Your account and everything the Service stores about you, plus your IP address and device details when you sign in.

Outside the EEA: Google LLC is certified under the EU-US Data Privacy Framework.

Google Firebase (Google Cloud) privacy policy →

Vercel

Purpose: Hosting the website and our server code, scheduled jobs, and protection against abusive traffic.

Data it receives: Every request: IP address, browser, pages visited, and cookies needed to sign you in.

Outside the EEA: Vercel Inc. is certified under the EU-US Data Privacy Framework.

Vercel privacy policy →

Stripe

Purpose: Payments: checkout, subscriptions, the billing portal, refunds and disputes.

Data it receives: Your email address and account id, what you buy, and the payment details you enter on Stripe's page.

Outside the EEA: Our contract is with Stripe Payments Europe, Limited (Ireland). Stripe, Inc. in the US is certified under the EU-US Data Privacy Framework.

Stripe privacy policy →

Postmark

Purpose: Sending our emails: service emails, the study emails you turn on, our replies to support messages, and your support messages (and copies of our replies) to our mailbox.

Data it receives: Your email address, name and the content of the email.

Outside the EEA: Postmark is run by ActiveCampaign (AC PM LLC), certified under the EU-US Data Privacy Framework.

Postmark privacy policy →

Cloudflare

Purpose: Turnstile, the check that a real person is signing up or writing to us without signing in; delivering the Service's audio recordings; and storing student proofs privately (R2, in the EU), until we decide, and screenshots and email attachments sent with a support message, as long as the conversation.

Data it receives: Turnstile: browser and device signals, and your IP address (which our server also sends to verify the check). Audio: your IP address and browser when a recording plays. Student proofs: the file, and your account id in its name. Screenshots and attachments: the file, filed under the conversation's reference.

Outside the EEA: Cloudflare, Inc. is certified under the EU-US Data Privacy Framework.

Cloudflare privacy policy →

our EU mail host

Purpose: Our support mailbox: email you send to our support address, our replies, and copies of the messages you send us in the app, so the whole conversation is kept in one place. Our server reads new email there (it never changes or deletes it) to keep it as a conversation in our support dashboard.

Data it receives: Your email address and name, and the whole email as you sent it, attachments included.

Outside the EEA: No: it is an EU provider and keeps the mail in the EU, under a data processing agreement with us.

UploadThing

Purpose: Storing profile pictures you upload.

Data it receives: The file, its name and size, your IP address, and your account id.

Outside the EEA: UploadThing is run by T3 Tools, Inc. in the United States: Standard Contractual Clauses under our agreement with them.

UploadThing privacy policy →

Better Stack

Purpose: Error reports, so we can fix what breaks, and checking that the site is up (our status page).

Data it receives: For an error: technical details of the error, the page (without its query string) and your account id. We remove IP addresses, cookies, request contents and email addresses before anything is sent, and the reports go through our own site first. The uptime checks and the status page use no personal data. Stored mainly in the EU.

When: Only when we have error reporting switched on.

Outside the EEA: Stored mainly in the EU. Better Stack, Inc. is a US company: any access from outside the EEA is covered by the European Commission's Standard Contractual Clauses.

Better Stack privacy policy →

Google Analytics

Purpose: Understanding how the Service is used.

Data it receives: Pages visited (without query strings, except campaign tags such as utm_source), device and browser, learning events, your IP address, and, if you are signed in, your account id with your membership type, sign-up method and sign-up date.

When: With your consent (Analytics).

Outside the EEA: Google LLC is certified under the EU-US Data Privacy Framework.

Google Analytics privacy policy →

Google accounts: if you sign in with Google and use your Google photo, it is loaded from Google's servers when shown.

Recordings: the Service's audio is generated in advance from dictionary text; no personal data is sent to the voice provider.

9. International transfers

We operate from Portugal (EU). Some providers above process data in the United States or elsewhere outside the European Economic Area. Each provider in section 8 shows the safeguard used: the EU-US Data Privacy Framework (an adequacy decision of the European Commission) where the provider is certified, otherwise the European Commission's Standard Contractual Clauses or an adequacy decision for the country concerned.

You can ask us for more information about these safeguards.

10. Your rights (GDPR)

  • Access and portability (Articles 15 and 20): download a copy of your data (JSON) from your account settings with "Download my data", or ask us.
  • Rectification (Article 16): change your name, email and picture in your settings, or ask us.
  • Erasure (Article 17): delete your account from your account settings (see what we keep), or ask us.
  • Restriction (Article 18) and objection (Article 21): ask us, including to object to processing based on legitimate interests.
  • Withdraw consent: cookie settings (footer), study emails and marketing emails (account settings or the unsubscribe link), public profile (settings).
  • Automated decisions (Article 22): we make none by automated means alone; ask us to look again at any decision about your account.

Contact us at support@kanamastery.com or hi@jlj.pt. We reply within a month (GDPR art. 12(3)) and may need to confirm it's you first.

Complaints

You can complain to a data protection authority in the EU country where you live or work, or where the issue happened. In Portugal this is the Comissão Nacional de Proteção de Dados (CNPD): www.cnpd.pt.

10a. If you are in the United Kingdom

The UK GDPR gives you the same rights as above, and we handle your data the same way. Transfers from the UK to US providers rely on the UK Extension to the EU-US Data Privacy Framework where the provider is certified under it, otherwise on the UK's International Data Transfer Addendum to the Standard Contractual Clauses, or a UK adequacy regulation.

You can complain to the Information Commissioner's Office (ICO): ico.org.uk.

11. California privacy rights (CCPA/CPRA)

Where the California Consumer Privacy Act applies to us, California residents have these rights:

  • Know, delete and correct: you can ask what we collect and why, and ask us to delete or correct it.
  • No sale: we do not sell personal information.
  • No sharing for advertising: we don't share personal information for cross-context behavioural advertising.
  • No discrimination for using these rights.

Categories collected: identifiers (email, name, account id, IP address), account and commercial information (membership, purchases), internet activity (use of the Service), and inferences (learning progress).

Email support@kanamastery.com with the subject "California Privacy Request". We verify your identity and reply within 45 days.

12. Cookies and storage on your device

We only use what the Service needs, unless you allow more. Choose in the banner on your first visit, and change it any time with Cookie settings at the bottom of every page. Your choice is saved on your device with its date.

Strictly necessary (always on)

  • __session (cookie, 5 days): keeps you signed in.
  • csrf_token (cookie, 24 hours): protects forms against cross-site request forgery.
  • km-maintenance-bypass (cookie, 12 hours, our team only): lets our team see the site while it is closed for maintenance.
  • Firebase sign-in data (browser storage): your sign-in, until you sign out.
  • Preferences (browser storage): theme, game settings, your cookie choice, dismissed notices, and a short wait before resending a verification email.
  • Push notifications (only if you turn them on): a small background script that shows them, and this device's notification token.
  • Games saved while offline (browser storage): results waiting to be sent, removed once they are. They stay if you sign out before they are sent, so on a shared device sign in again to send them.
  • Your name for a shared quiz (browser storage, until you close the tab).
  • Offline pages (if the Service is installed as an app): copies of our public pages, not your data.

Analytics (only with consent)

Google Analytics cookies _ga and _ga_* (up to 2 years): tell visits apart.

If you withdraw consent, we stop the tools and remove the Google cookies we can. You can also clear cookies and site data in your browser at any time.

14. Security

  • Encryption in transit: everything goes over HTTPS.
  • Passwords: stored only by Firebase, hashed; never stored or logged by us.
  • Two-factor authentication with an authenticator app, optional.
  • Access rules: you can only read your own account data (and quizzes shared publicly); everything is written by our server, except basic profile settings.
  • Protection against abuse: rate limiting, sign-up checks, CSRF protection, and security headers (HSTS, Content Security Policy).
  • Limited access: only people who need it to run the Service can access personal data.
  • Records: we keep a record of our processing activities, as the GDPR requires.

No system is perfectly secure. If you find a vulnerability, please tell us at support@kanamastery.com.

15. Children

The Service is not intended for children under 16, and we do not knowingly collect their data. If you believe a child under 16 has given us personal data, contact us at support@kanamastery.com and we will delete it.

16. Changes to this policy

We update this policy when the Service changes; the date at the top shows the latest version. For significant changes we tell you by email or with a notice in the Service, and when you sign up we record which version you accepted.

17. Contact

Controller: Jaime Lourenço Jacob, trading as KanaMastery

Address: Rua Padre António Vieira 38, 6DTR, 4710-412 São Victor, Braga, Portugal

Email: support@kanamastery.com (privacy requests and questions), or hi@jlj.pt (legal)

Contact page: kanamastery.com/contact

Legal notice: kanamastery.com/legal

We aim to reply within 30 days. For security issues, say so in the subject line.