No description
  • TypeScript 75.1%
  • MDX 19.6%
  • HTML 3%
  • JavaScript 2%
  • CSS 0.2%
  • Other 0.1%
Find a file
2026-04-08 12:49:49 -04:00
.github Update .github/workflows/docker.yml 2026-04-07 18:43:25 -04:00
.husky chore(git): enable husky git hooks with local opt-out 2026-01-16 17:11:52 +05:00
app feat(seo): harden technical SEO for kana kanji vocabulary 2026-04-05 17:50:25 +05:00
assets/monkeytype-sfx chore: commit current worktree 2026-04-02 16:19:49 +05:00
community chore(automation): mark item as issued 2026-04-07 18:51:32 +00:00
core feat(seo): harden technical SEO for kana kanji vocabulary 2026-04-05 17:50:25 +05:00
data chore(metrics): update GitHub metrics 2026-04-07 11:00:44 +00:00
docs fix(vercel): stop merge-only community deploys 2026-04-04 15:39:57 +05:00
features fix(game): use tracked TilesModeShared casing 2026-04-05 16:10:24 +05:00
openspec chore: track newly added prompt and skills files 2026-02-21 01:35:28 +05:00
public fix: resolve lint errors, invalid HTML, and data quality issues 2026-03-29 22:28:44 +05:00
repo/prompts docs(prompts): archive SEO health check planning document 2026-02-07 15:10:31 +05:00
research chore: commit workspace changes 2026-03-27 22:40:32 +05:00
scripts feat(seo): harden technical SEO for kana kanji vocabulary 2026-04-05 17:50:25 +05:00
shared fix: implement viewport deadzone to prevent character clipping 2026-04-06 19:32:29 +05:00
types fix(seo): relax structured data typing and skip test typecheck 2026-02-05 17:34:09 +05:00
widgets/TrainingGame feat: add keyboard shortcut for training navigation (#4277) 2026-02-08 22:40:57 +05:00
.gitignore chore(repo): ignore local AI artifacts 2026-03-21 23:20:04 +05:00
.npmrc chore(deps): upgrade next.js to 16.2.1 2026-03-23 13:31:19 +05:00
.prettierignore added .prettierignore file 2025-10-09 10:46:48 +05:00
.prettierrc style(config): enforce trailing commas across all files 2026-01-19 18:42:37 +05:00
AGENTS.md Add shell environment command separators for Linux/macOS 2026-03-31 23:32:44 +05:30
canvas-confetti.d.ts switching to new main branch 2025-05-28 14:49:35 +05:00
CHANGELOG.md chore(release): bump version to 0.1.16 2026-03-30 12:20:14 +05:00
CLAUDE.md Update shell environment instructions for clarity 2026-03-31 23:32:22 +05:30
CODE_OF_CONDUCT.md docs: update contact email to dev@kanadojo.com 2025-12-14 14:33:17 +05:00
components.json perf(dx): implement optimization improvements 2025-12-17 17:47:15 +05:00
CONTRIBUTING.md docs: update contributing guide and README with correct repository links (#1984) 2026-01-26 19:26:02 +05:00
docker-compose.yml docs: add comprehensive documentation and infrastructure improvements 2026-01-16 02:39:21 +05:00
Dockerfile Update Dockerfile 2026-04-08 12:49:49 -04:00
Dockerfile.dev docs: add comprehensive documentation and infrastructure improvements 2026-01-16 02:39:21 +05:00
errors.log added harbor-fog theme 2026-04-05 02:08:43 +05:30
eslint.config.mjs chore(next): upgrade to 16.2 2026-03-20 21:02:55 +05:00
GEMINI.md fix(docs): correct GitHub repository URL 2026-03-25 10:19:47 +05:30
global.d.ts style(config): enforce trailing commas across all files 2026-01-19 18:42:37 +05:00
instrumentation-client.ts style(config): enforce trailing commas across all files 2026-01-19 18:42:37 +05:00
kuroshiro.d.ts fix: harden type safety for analyzer/cache and unify kana character types (#5508) 2026-02-20 19:27:20 +05:00
LICENSE.md style(config): enforce trailing commas across all files 2026-01-19 18:42:37 +05:00
lint-staged.config.js style(config): enforce trailing commas across all files 2026-01-19 18:42:37 +05:00
llms.txt feat(seo): harden technical SEO for kana kanji vocabulary 2026-04-05 17:50:25 +05:00
next-sitemap.config.js feat(seo): harden technical SEO for kana kanji vocabulary 2026-04-05 17:50:25 +05:00
next.config.ts Update next.config.ts 2026-04-08 12:49:29 -04:00
package-lock.json fact added (#11150) 2026-03-31 09:35:28 +05:30
package.json chore(release): bump version to 0.1.16 2026-03-30 12:20:14 +05:00
postcss.config.mjs style(config): enforce trailing commas across all files 2026-01-19 18:42:37 +05:00
proxy.ts feat(translator): improve SEO routing and links 2026-03-23 21:57:56 +05:00
README.md chore: commit current worktree 2026-04-02 16:19:49 +05:00
SECURITY.md docs: update contact email to dev@kanadojo.com 2025-12-14 14:33:17 +05:00
SEO_IMPROVEMENTS_SUMMARY.md feat(seo): implement comprehensive SEO improvements for Bing optimization 2026-01-22 01:03:47 +05:00
sql.js.d.ts feat(anki-converter): complete Anki deck to JSON converter feature 2026-01-26 23:59:42 +05:00
tailwind.config.js fix(lint): resolve critical TypeScript and ESLint errors 2026-02-05 15:46:35 +05:00
TODO_INDEXNOW_SETUP.md feat(seo): implement comprehensive SEO improvements for Bing optimization 2026-01-22 01:03:47 +05:00
tsconfig.json chore: save local changes 2026-03-21 17:57:54 +05:00
vercel.json feat(cron): add Vercel cron trigger for community issue workflow 2026-02-24 17:01:22 +05:00
vitest.config.ts fix(lint): resolve critical TypeScript and ESLint errors 2026-02-05 15:46:35 +05:00
vitest.shims.d.ts style(config): enforce trailing commas across all files 2026-01-19 18:42:37 +05:00
zizmor-report.json fix(preferences): correct audio hook import path 2026-03-28 15:28:10 +05:00

This project is backed by

Vercel OSS Program

KanaDojo かな道場

KanaDojo Banner

Training

An aesthetic, minimalist, and highly customizable platform for mastering Japanese, inspired by Duolingo and Monkeytype. Built with Next.js and sponsored by Vercel.

Vercel OSS Program Sponsored by Vercel Live Demo DeepWiki Good First Issues License Next.js TypeScript Zustand Tailwind CSS Vitest AGPL-3.0 Discord Email


About

KanaDojo is an engaging and user-friendly 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.

Contributing

For Complete Beginners

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.

Not a Beginner?

All contributions are welcome! Whether you're fixing bugs, adding features, improving documentation, or translating — check out CONTRIBUTING.md to get started.

Live Demo · Documentation

Key Features

  • 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

Quick Start

git clone https://github.com/lingdojo/kana-dojo.git
cd kana-dojo
npm install
npm run dev

Open http://localhost:3000 to start learning.

To validate changes before opening a PR:

npm run check

Having issues? See the Troubleshooting Guide

Documentation

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

Tech Stack

See Architecture docs for full technical details.

Credits

Sponsor

Inspiration

Japanese Language Libraries

  • Kuroshiro — Japanese text conversion and romanization.
  • Kuromoji — Japanese tokenizer used for text analysis.
  • Wanakana — kana and romaji transliteration helpers.

Data Sources

Star History

Star History Chart

License

This project is licensed under the AGPL 3.0 License — see LICENSE.md for details.

Contact


Made with ❤️ by the open-source community for Japanese language learners worldwide

がんばって! (Ganbatte! — Do your best!)

⬆ Back to top