MCPcopy
hub / github.com/lingdojo/kana-dojo

github.com/lingdojo/kana-dojo @v0.1.18 sqlite

repository ↗ · DeepWiki ↗ · release v0.1.18 ↗
2,532 symbols 6,852 edges 791 files 300 documented · 12%
README

This project is backed by

Vercel OSS Program

Cossistant 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

Logo

Sponsors

  • Vercel — part of Vercel's Open-source Software Sponsorship Program.
  • Cossistant — part of Cossistant's Open-source Program.

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

  • Discord: https://discord.gg/CyvBNNrSmb
  • Email: dev@kanadojo.com

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

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

⬆ Back to top

Extension points exported contracts — how you extend this code

BadgeProps (Interface)
* Editorial Badge component for displaying labels with a refined look
features/Resources/components/ResourceCard.tsx
RGB (Interface)
* WCAG Color Utility Functions * Provides color parsing, conversion, and contrast ratio calculations * following WCAG
features/Preferences/lib/colorUtils.ts
RawNote (Interface)
* Raw row from the notes table
features/AnkiConverter/parsers/sqliteParser.ts
RateLimitConfig (Interface)
* Server-side rate limiting utility for API protection * * Implements: * - Per-IP rate limiting (sliding window) * -
shared/infra/server/rateLimit.ts
AltTextOptions (Interface)
* Alt Text Generation Utility * Generates SEO-optimized, accessible alt text for images * Follows best practices for b
shared/utils/alt-text.ts
IntrinsicElements (Interface)
(no doc)
global.d.ts
KuroshiroOptions (Interface)
(no doc)
kuroshiro.d.ts
SqlJsStatic (Interface)
(no doc)
sql.js.d.ts

Core symbols most depended-on inside this repo

map
called by 772
types/fast-check.d.ts
filter
called by 435
types/fast-check.d.ts
cn
called by 211
shared/utils/utils.ts
createForm
called by 170
features/Conjugator/lib/engine/conjugateIrregular.ts
get
called by 130
sql.js.d.ts
useClick
called by 81
shared/hooks/generic/useAudio.ts
classifyVerb
called by 76
features/Conjugator/lib/engine/classifyVerb.ts
renderTone
called by 52
scripts/import-monkeytype-sounds.mjs

Shape

Function 1,940
Interface 514
Method 55
Class 22
Enum 1

Languages

TypeScript100%

Modules by API surface

shared/utils/adaptiveSelection.ts29 symbols
shared/hooks/generic/useAudio.ts27 symbols
features/AnkiConverter/lib/conversionPipeline.ts25 symbols
shared/infra/server/rateLimit.ts24 symbols
features/Resources/types/index.ts24 symbols
features/Achievements/store/useAchievementStore.ts24 symbols
features/Preferences/lib/colorUtils.ts22 symbols
sql.js.d.ts21 symbols
features/Preferences/data/themes/themes.ts20 symbols
scripts/import-monkeytype-sounds.mjs18 symbols
features/AnkiConverter/parsers/sqliteParser.ts18 symbols
features/AnkiConverter/lib/jsonBuilder.ts18 symbols

Dependencies from manifests, versioned

@eslint/eslintrc3 · 1×
@fortawesome/fontawesome-svg-core6.7.2 · 1×
@fortawesome/free-brands-svg-icons6.7.2 · 1×
@fortawesome/free-regular-svg-icons6.7.2 · 1×
@fortawesome/free-solid-svg-icons6.7.2 · 1×
@fortawesome/react-fontawesome3.1.1 · 1×
@next/bundle-analyzer16.2.4 · 1×
@radix-ui/react-accordion1.2.12 · 1×
@radix-ui/react-alert-dialog1.1.15 · 1×
@radix-ui/react-dialog1.1.15 · 1×
@radix-ui/react-popover1.1.15 · 1×

For agents

$ claude mcp add kana-dojo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact