Back to projects
Live

TanukiType

A speed typing trainer for Japanese kana.

TanukiType is a typing practice app for learning hiragana and katakana. You see a kana character, type the romaji, and it tracks your speed and accuracy. Basically MonkeyType but for Japanese.

ReactTypeScriptViteTailwind CSSwanakanaMotion
TanukiType screenshot

The typing engine

The core is a custom typing engine with two-phase input validation. First it checks if what you've typed so far is a valid prefix of any accepted spelling. Then it checks for a complete match. This means you get instant feedback on mistakes without false negatives for multi-character inputs like 'shi' or 'chi'.

Romaji mapping

Each kana character accepts every valid romaji spelling: Hepburn, Kunrei-shiki, small-y combinations, sokuon (double consonants), and choonpu (long vowels). I didn't want the app to reject a correct answer just because it used a different romanization system.

UX decisions

No sign-up, no loading screens. You pick a mode (hiragana, katakana, or mixed), choose a session length, and start typing. The app uses async look-ahead to load the next batch of characters while you're still typing the current ones, so long sessions don't stall.

Why I built it

I was learning Japanese and the typing trainers I found were either ugly, slow, or rejected valid spellings. This started as a weekend project and turned into something I actually use regularly.