Free kana typing trainer — JIS layout or romaji, JLPT N5 deck, and now WaniKani vocab import

:warning: This is a third-party app and is not created by the WaniKani team. By using this, you understand that it can stop working at any time or be discontinued indefinitely.

Hi everyone! Like most learners I typed Japanese with a romaji IME for years, then found out Japanese keyboards have a direct kana layout — the 3 key is あ, t is か — and decided to learn it properly. I couldn’t find a good trainer for it, so I built one:

https://kanatyping.com

It’s free with no account. What it does:

  • Practice typing real words on the JIS kana layout, with the next key highlighted until you learn the positions
  • Full JLPT N5 deck (705 words) plus a hand-curated set with example sentences and furigana
  • Spaced repetition — words you miss come back more often
  • Recall mode — the word is hidden behind a cloze sentence, so you type it from memory (good kanji→reading practice too, since the kanji form is shown)
  • Per-key stats that show exactly which keys you keep missing, with one-tap drills
  • Works on phones (tappable keyboard), dark mode, works offline

Would love feedback — especially what vocab you’d want next (N4 is planned) or anything that feels confusing. どうぞよろしく!

Updates since posting (thanks for the feedback in this thread!):

  • Romaji input mode — you can now drill the same vocabulary typing regular romaji (all standard spellings work: shi/si, chotto/tyotto, single or double n), so the JIS kana layout is an option, not a requirement.
  • WaniKani vocabulary import — paste a read-only API token in Settings and practice typing exactly the words you’re studying here. The token is used once in your browser, never stored, and never sent anywhere except api.wanikani.com; only the word list stays on your device.
  • Non-QWERTY layouts fixed — kana mode now matches keys by physical position (KeyboardEvent.code), so Dvorak/Colemak/AZERTY users are covered.
    https://kanatyping.com

So, pretty much all native Japanese speakers use romaji entry too (save for smartphones, where the kana flick keyboard is the norm), so while kana entry is certainly a thing that exists, it might not be worth the time it’d take to learn essentially a whole new keyboard layout to perform exactly the same function.

This is probably niche enough that it’s not worth fixing, but if you happen to not use a QWERTY base layout, your website doesn’t work because the keys don’t match up with the physical Japanese kana layout. I think the way to abstract it would be to use keyboard keycode instead of the character to do the translation: KeyboardEvent: code property - Web APIs | MDN

Admittedly the real Japanese kana layout also assumes QWERTY as the romaji layer (and some software IMEs do the same, annoyingly for me).

Fair point, and it stuck with me — so I just shipped a romaji input mode. Same vocabulary, spaced repetition, and recall drills, but you type ka → か like a normal IME (all the standard spellings work: shi/si, tyotto/chotto, single or double n). The JIS kana layout is now an option rather than a requirement. Thanks for the push — would love to hear if it feels right.

Great catch, and you called the right fix — kana mode now matches on KeyboardEvent.code, so Dvorak/Colemak/AZERTY base layouts hit the correct physical positions as of just now. (Romaji mode stays character-based, so alt-layout typists get the letters they actually type — no QWERTY-assuming romaji layer here :grinning_face_with_smiling_eyes:.) Thanks for the pointer!

One more update, and it’s the big one for this community: WaniKani vocabulary import is live. Paste a read-only API token in Settings and you can practice typing exactly the words you’re studying here — in kana mode or romaji mode, with the same spaced repetition and recall drills. The token is used once in your browser and never stored or sent anywhere except api.wanikani.com.

Also new since last time: the full N5 deck now has example sentences with furigana for all 705 words, and there are streaks, daily goals, and a “due for review” queue.

If you try the import, I’d love to know how it handles your deck size — and N4 vocab is next on the list.