Kotonoha — Privacy Policy

Last updated: 7 September 2026

Kotonoha is a Japanese-language learning app. It is built to work without an account: every learning feature runs on your device, and your study progress never leaves it unless you choose to back it up.

You may create an optional account. If you do, a sign-in record is stored by Google Firebase Authentication in a project the developer controls. That record is an identity only — it holds no study data. See "Optional account" below.

This policy describes exactly what the app does. Every statement below corresponds to code in the app.

The short version

What is stored on your device

Everything the app knows about you lives on your phone:

You can erase all of it at any time by uninstalling the app or clearing its data in Android settings.

Optional: creating an account

You never need one. Every learning feature works signed out, and the app does not ask you to sign in to start.

If you choose to create one — with Google, or with an email address and password — the record is held by Google Firebase Authentication in a Cloud project the developer controls. That record contains:

It contains no study data. Your words, kanji, review schedule, reading history and notes are not uploaded with it, are not readable by the developer, and are not affected by signing in or out. Sign-in attaches a name to the app; it does not move your learning anywhere.

If you register with an email address, Firebase sends a confirmation message to it. You are not required to confirm before using the app.

Deleting your account. Profile → Account → Delete account removes the Firebase record permanently, and everything stored against it on our server — your support requests and any gift-code records. Your study progress stays on the device, because it was never part of the account. You can also write to the address at the bottom of this policy and ask for it to be deleted for you.

If we cannot reach our server at that moment, the deletion is stopped and you are asked to try again rather than half-completed. That is deliberate: your account is the only thing that proves those records are yours, so it must not be removed while they still exist.

Optional: support requests

If you are signed in, you can open a support request from Profile → Contact — a question, a suggestion, or a problem. We reply inside the app, and the conversation stays on the same request rather than becoming a new one.

We store what you write, the app version and language, and the account id it was filed under. We do not store your email address with it, and the request is never shared with anyone else — it reaches our own server and stops there.

Your request is read by the developer through a private support console, which is reachable only with a credential and shows the request without your email address attached.

Without an account, the "Report a bug" option still writes an email in your own mail app, exactly as before. We have no way to reply inside the app to someone we cannot identify.

Optional: notifications when we reply

If you allow it, we send you a notification when we answer a support request. The app asks for this permission once, in the last step of first-launch setup, after explaining why; if you skip it there, Android asks again the first time you send a request. If you refuse, everything else still works — the app simply shows the answer the next time you open the conversation.

To send it, we store a notification token for your device against your account. It is issued by Google's Firebase Cloud Messaging and identifies the installation, not you: it cannot be read by other apps, and it tells us nothing about your phone beyond where to deliver a message.

The notification says only that a reply arrived, and the subject you gave your own request. It never contains our answer. A notification is read on a lock screen, in public, by whoever is holding the phone — so the reply itself stays inside the app, behind your account.

The token is removed when you sign out, when you uninstall the app, or after sixty days without the app running, whichever comes first.

Optional: sending a crash report

If Kotonoha closes unexpectedly, it saves a technical report on your device: the error, where in the code it happened, the app version and your Android version. Nothing is sent at that moment.

The next time you open the app, we show you what was saved and ask. If you tap send, it goes to our own server — with no account id, no email, no device identifier and no advertising ID attached. If you decline, it is deleted.

How long we keep things

| What | How long | |---|---| | Crash reports | 90 days | | Files you attach, over 1 MB | 7 days | | Files you attach, 1 MB or under | 90 days | | Support requests and replies | Until you delete your account | | Notification token for your device | 60 days after the app last ran | | Purchase and subscription records | Up to a year after a subscription ends |

Deleting your account removes what is stored against it straight away, without waiting for any of these.

Optional: backing up to your own Google Drive

If — and only if — you choose to turn on cloud backup, the app asks you to sign in with Google.

Sync between your devices

With cloud backup on, the app also keeps your progress in step across your own devices, using the same hidden folder and nothing else:

The last step of first-launch setup asks you to sign in with Google so that backup and sync are on from the start. It is optional, and the app tells you what you give up by skipping it: without it, your progress is lost with the phone.

You can disconnect at any time from Profile → Cloud backup. Signing out revokes the app's access.

Reporting a bug

If you use Profile → Contact → "Report a bug", the app builds a report — your description, plus your app version, phone model, Android version and the screen you were on — and optionally a screenshot, then opens it as a draft in your own email app, addressed to kotonohajapaneseapp@gmail.com.

The app does not send it. You see the address, the message and the attachment, and you press send. If you cancel, nothing leaves your device. The report contains nothing you cannot read for yourself before sending — it is your own email.

What the app connects to

Kotonoha is offline-first, but some optional features fetch data. As with any app that makes a network request, the service you connect to can see your IP address.

| Connection | When | Why | |---|---|---| | fonts.gstatic.com (Google) | On demand | Some display typefaces are downloaded rather than bundled, then cached on your device permanently. Google receives your IP address and User-Agent. | | Google ML Kit | If you use Arabic⇄English gloss translation | Downloads a translation model. That translation runs on your device. | | jisho.org | When a word lookup falls through to the online dictionary | The word you looked up is sent to jisho.org. Nothing else about you is attached to it. | | api.mymemory.translated.net | When a translation cannot be done on your device | The text being translated is sent to MyMemory. Avoid translating anything you would not paste into a public web form. | | github.com releases | If you download a voice pack, image pack, or the manga-OCR model | Fetches the optional content packs. | | www.edrdg.org | If you download an optional dictionary | Fetches the JMdict / KANJIDIC2 / JMnedict files. | | Google Sign-In / Google Drive | Only if you enable cloud backup | See above. | | Google AdMob | Only when you tap "watch to earn" for a rewarded ad | See Advertising below. | | Firebase Cloud Messaging (Google) | Only if you allow notifications after sending a support request | Delivers "we replied". Google routes the message; it carries the subject you wrote, never our answer. |

Advertising

Kotonoha shows rewarded ads on an opt-in basis only, through Google AdMob. An ad appears when — and only when — you tap a "watch to earn" button to receive a bonus (for example, in-app points or an unlock). There are no banner ads, no pop-up ads, and never an ad inside the manga or book readers.

This is the one place the app shares data with a third party for a purpose other than a feature you directly asked for — and it happens only after you choose to watch an ad.

Children

Kotonoha is a language-learning app suitable for general audiences. It does not knowingly collect personal information from anyone, including children.

Changes

If this policy changes, the date at the top changes with it, and the current version is always at this URL.

Contact

Questions about this policy: kotonohajapaneseapp@gmail.com