Katsuyo — Privacy Policy

Last updated 14 October 2026

Katsuyo is a Japanese verb conjugation practice app. It has no advertising and no tracking. Accounts are optional: everything works without one, and the app never asks you to make one. This policy describes exactly what the app sends off your device, and what it keeps on it.

What leaves your device

An anonymous device identity. On first launch the app signs in anonymously to Firebase Authentication, which creates an account identifier for this installation and sends authentication tokens between the app and Google's servers. It carries no name, no email address, and nothing about you (unless you join the announcements list as a guest, described below). It exists so that, if you later create an account, your progress can move with it rather than being stranded.

Your account, if you create one. Creating an account stores your email address (with Firebase Authentication) and a password, which Firebase stores only in hashed form and which the developer never sees. You can sign in on another device with them, and you can reset the password by email.

Announcements, if you ask for them. When you create an account you can tick “Hear about new apps and big updates”. If you do, the app saves that choice with your account: whether you opted in, the exact wording you saw, whether the box was already ticked when the form opened, and the time. In the United States and Japan the box starts ticked, based on your device's region setting; everywhere else it starts unticked. The region is checked on your device and is not sent anywhere. Once you have an account you can also join, in the same words, from the card at the foot of Home (in the app or on playkatsuyo.com/game/); that saves the same record. We use your account's email address for these announcements only, at most once a month. Turn them off any time in Settings → Account; every announcement will also have an unsubscribe link.

Announcements, as a guest. Without an account you can still join from the card at the foot of Home (in the app or on playkatsuyo.com/game/) by typing an email address. It then saves that address, the exact wording shown beside it, and the time, tied to this installation's (on the web, this browser's) anonymous identifier (the one described above). It is used for these announcements only, at most once a month. While you are still that guest, Remove on the same card deletes it immediately. If you cannot reach the app, or the address was given under an earlier guest identity (see below), ask for it to be removed here. Once announcements are being sent, each one will also have an unsubscribe link.

If you later create an account on this installation, you keep the same anonymous identifier, so the address stays on the list until you turn announcements off in Settings → Account, which clears it together with your account's choice. Signing out does not lose it: signing back in to that account reaches it again, and Delete account removes it. Two cases are different. If you instead sign in to an account that already exists, an address you gave as a guest earlier is tied to an identifier the app can no longer reach. And if you sign out, join as a new guest, and then sign in again, the address given as that new guest is tied to a different identifier from the account's. In both cases the address stays until you ask for it to be removed or follow the unsubscribe link in an announcement.

Your synced progress, once you have an account. With an account — and only then — the app uploads a compressed copy of your practice data so it survives a lost device and follows you to another one:

This copy is readable only by that account. Theme and text size are not uploaded — they stay per device. Without an account, none of this leaves your device.

Leaderboard entries. If you score highly enough and choose to submit, the app saves the display name you type, your score, the JLPT level you played, and the date. This is stored in Google Cloud Firestore and is publicly readable — it is shown to everyone who opens the app. Please do not use your full name, an email address, or anything else you would not want published. Names are filtered for offensive content and can be reported by other players.

Feedback and reports. If you send feedback, or report a leaderboard name, the app transmits what you wrote. A report also includes the reported name, its score and board, an identifier for the leaderboard entry, the display name you last used, and the time. These are delivered to the developer by email through Formspree. Submitting either is entirely optional.

An optional tip, if you leave one. Tips on web and Android are processed on a Stripe-hosted payment page. On iOS, tips are processed by Apple through StoreKit by default; the United States App Store storefront also offers a secondary Stripe-hosted option. The payment provider receives the amount and the information needed to process the transaction. Katsuyo never receives your full card details and does not attach your account, learning history, or leaderboard activity to the payment.

Nothing else is transmitted, apart from the anonymous counts the website keeps, described next. There is no crash reporting, advertising, or tracking of any kind, and no advertising identifier is requested or used.

Usage counts on the website. playkatsuyo.com, including the conjugation reference and the browser version of the app, uses GoatCounter to count page views and a few actions: rounds started, finished or left, minutes played, taps on the main menu, results and audio buttons, the Join button on the announcements card, picks of a level, whether the browser version's home screen was slow to start, the romaji toggle and clip playback on the reference, and the words typed into its search. Each count records the page or action, the referring site, browser and operating system type, screen size, and country. It sets no cookies and stores no IP address or other identifier, so no count can be tied to you or to your other visits, and it is hosted in the EU. The iPhone and iPad app does not include it.

What stays on your device

All of it lives in the app's local storage and is deleted when you delete the app. Without an account it is uploaded nowhere; with one, everything except the theme, text size and audio cache is also copied to your account, as described above. The app always works from this local copy, so it keeps working offline either way.

Service providers

As with any internet service, these providers receive your device's IP address as an unavoidable part of handling the request, and may retain it in server logs. The app itself neither reads nor stores your IP address.

Children

Katsuyo is a study tool suitable for all ages and does not knowingly collect personal information from anyone, including children. The only information a user can publish is a self-chosen leaderboard display name. Please choose one that does not identify you.

Removing your data

Your account. Settings → Account → Delete account permanently removes your account, everything synced to it, your announcement choice, and any guest announcement signup made with the identity that became the account (the one you had on this installation before creating it). A signup made under another guest identity is not part of the account and is not removed this way; ask for it to be removed. If you cannot reach the app, you can request deletion here. The progress on that device is left alone, and the app keeps working without an account. One record is kept indefinitely afterwards: the deleted account's internal identifier and the time it was deleted, and nothing else. It exists so that a device still holding a valid sign-in cannot recreate the account you just deleted; it contains no email address, no name, and no progress.

Leaderboard entries are not removed by deleting your account. Board entries carry no account information at all, so they cannot be traced back to an account — which also means deleting one cannot find them. To have an entry removed, contact the developer at the address below with the name and approximate date, or use the ⋮ report button on the entry itself.

Your progress. Settings → Reset progress clears your learning history, statistics and high score; with an account, on every device signed in to it. To remove everything held on a device, delete the app.

Data sources

Japanese word, reading and meaning data comes from JMdict and KANJIDIC, © the Electronic Dictionary Research and Development Group, used under CC BY-SA 4.0. Japanese text is set in Noto Sans JP, used under the SIL Open Font License 1.1.

Changes

If this policy changes, the revised version will be posted at this address with an updated date.

Contact

Questions, data removal requests, or reports of objectionable content: feedback@keshiki.app. You can also use the in-app feedback form: tap the ? icon on the home screen, then Feedback.