An aesthetic, minimalist and highly customizable platform for mastering Japanese inspired by Monkeytype
KanaDojo is an engaging web-based Japanese learning platform that makes mastering Hiragana, Katakana, Kanji, and Vocabulary fun and intuitive. Built with a focus on aesthetics, customization, and effective learning, it provides an immersive training environment for Japanese language learners at all levels.
Start with the Beginner's Contribution Guide for a step-by-step walkthrough that explains everything from creating a GitHub account to opening your first PR.
All contributions are welcome! Whether you're fixing bugs, adding features, improving documentation, or translating — check out CONTRIBUTING.md to get started.
- Three Training Dojos — Kana (Hiragana/Katakana), Kanji (JLPT N5-N1), and Vocabulary
- Four Game Modes — Pick, Reverse-Pick, Input, and Reverse-Input for varied practice
- 100+ Themes — Beautiful light and dark themes with 28 Japanese fonts
- Progress Tracking — Statistics, streaks, and 80+ achievements
- Fully Responsive — Works seamlessly on desktop, tablet, and mobile
git clone https://github.com/lingdojo/kana-dojo.git
cd kana-dojo
npm install
npm run devOpen http://localhost:3000 to start learning.
To validate changes before opening a PR:
npm run checkHaving issues? See the Troubleshooting Guide
| Document | Description |
|---|---|
| Architecture | Project structure, patterns, and conventions |
| UI Design | Theming, styling, and component guidelines |
| Translation Guide | How to translate the app |
| Troubleshooting | Common issues and solutions |
| Beginner Contributing | Step-by-step guide for first-time contributors |
| All Documentation | Complete documentation index |
Next.js 15 · React 19 · TypeScript · Tailwind CSS · shadcn/ui · Zustand · Framer Motion
See Architecture docs for full technical details.
This project is licensed under the AGPL 3.0 License — see LICENSE.md for details.
- Discord: https://discord.gg/CyvBNNrSmb
- Email: [email protected]
Made with ❤️ for Japanese language learners worldwide
がんばって! (Ganbatte! — Do your best!)