ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻譯準備中
免費的日語詞彙間隔重複學習,由您已掌握的漢字引導。提供真實例句、JLPT 文法練習,及 38,000 詞彙字典。
AI 翻譯
Free spaced repetition for Japanese vocabulary, led by the kanji you already know. Real example sentences, JLPT grammar drills, and a 38,000 word dictionary.
教育TypeScript · SvelteGitHub @gokan-dev上線中營運者未確認
試用過了嗎? 點一下就好,不需要登入。
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Efficient Japanese vocabulary learning tool
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A Japanese vocabulary SRS built around the kanji you already know. Gokan is a spaced repetition system for Japanese vocabulary. It knows which kanji you have studied, and leads with words built from those kanji. 語感 (gokan) means "sense of language": the feel for a word that comes from meeting it enough times, in enough places, that it stops needing translation. Why start from the kanji you know Memorising the shape of a word is a real part of learning it, and Gokan does plenty of that. Nobody holds every kanji of every word in their head, and pretending otherwise would be silly.檢視完整 README ↗
A Japanese vocabulary SRS built around the kanji you already know.
Use the app · Browse the dictionary · Open dataset
Gokan is a spaced repetition system for Japanese vocabulary. It knows which kanji you have studied, and leads with words built from those kanji.
語感 (gokan) means "sense of language": the feel for a word that comes from meeting it enough times, in enough places, that it stops needing translation.
Memorising the shape of a word is a real part of learning it, and Gokan does plenty of that. Nobody holds every kanji of every word in their head, and pretending otherwise would be silly.
But when a word is made of kanji you have already studied, four things happen at once.
It gives the word something to hang on. Memory works by connection: a new thing sticks when it attaches to something already there. This is the idea the whole app is built on. It is the same reason a word you once heard in a conversation, or read in a sentence that stuck with you, is the one you never have to look up again. Known kanji are the cheapest, most reliable hook available, because you already carry them.
It turns memorisation into understanding. If you know what each kanji means, a compound stops being an arbitrary string and becomes a small story you can tell yourself. That story is what you actually remember.
It keeps two-kanji words apart. There are a great many of them, and they are the point where shape alone quietly stops working. Words start blurring into each other, and you find yourself swapping one for another with no idea why. Knowing the components is what pulls them back apart.
And it works in reverse. Meeting a kanji inside real words is what turns it from a character you once drilled into one you can read.
None of this is a wall. You are not blocked from words whose kanji you have not reached: working through KKLC toward N5, you will run straight into basic, high-frequency words written with kanji that come much later, and learning those from scratch is completely fine. They teach you the kanji from the other direction. The kanji filter is the default, not a rule, and there is a setting to turn it off.
Each word carries two independent schedules: type the reading in hiragana, and recall the meaning from a real sentence. They are staggered so that answering one does not hand you the other.
Scheduling reacts to how you answer, not just whether you were right. A slow correct answer earns a shorter interval than a fast one, and per-word difficulty adjusts as you go. The target is 75% recall, which is roughly where the research puts the best trade-off between remembering things long-term and reviewing more than you need to.
Get one wrong and it comes back in the same session, but the retry is practice only. It clears the flag without undoing the scheduling penalty, so a word you fumbled does not get to look mastered because you got it on the second try.
755 grammar points from N5 to N1, on their own SRS schedule, drilled as fill-in-the-blank against real sentences rather than as flashcards to recognise.
What is blanked is the grammar pattern itself, located in the sentence when the dataset was built. Vocabulary in the same sentence gets blanked too, as reinforcement, but the pattern is what decides your score: missing a word you happen not to know cannot mark a grammar point wrong when you clearly knew the grammar. It scales the reward instead. Words you do get right feed credit back into their own vocabulary schedules, so grammar practice doubles as vocabulary review.
Most learners keep a notebook, or a notes app, or a pile of screenshots: words picked up from a game, a stream, a conversation, waiting to be looked up properly and then usually not looked up at all.
Search any word and add it straight to your learning list. That list is the queue, so a word you caught in the wild on Tuesday is simply part of Wednesday's reviews. No transcription step, no second system to maintain, no notebook that slowly becomes a graveyard.
Every grammar point in the dataset, grouped into families of near-synonyms rather than by level, because the question that actually comes up is "which of these do I want", not "what is on the N3 list".
でも, しかし and けれども sit next to each other where you can compare them. Search covers the family name too, so looking for "contradiction" finds the whole cluster even though no individual point contains that word.
Knowledge held over time, JLPT coverage per level, upcoming review load, and daily activity. The knowledge curve is the one worth watching: it shows whether you are accumulating or treading water, which raw review counts hide completely.
gokan-srs.com/dictionary is a free Japanese dictionary built from the same data. No account, no cookies, no signup wall, and it works with JavaScript turned off.
35,814 words, 2,300 kanji, and 755 grammar points, each with its own page.
Every word inside every example sentence links to its own entry, so following a sentence you half understand until it comes apart is the natural thing to do rather than a dead end.
gokan-dataset is the data both of those read, published as flat static JSON under CC BY-SA 4.0.
JMdict knows what a word means but not how common it is. JPDB knows frequency but not which kanji a learner meets first. Tatoeba has hundreds of thousands of sentences with no link to the words inside them. The dataset does that joining once, at build time, so nobody else has to. If you are building something Japanese-shaped and want vocabulary already connected to kanji, frequency, JLPT level and tokenised example sentences, take it.
git clone --recurse-submodules https://github.com/gokan-dev/gokan-srs.git
cd gokan-srs
bun install
bun run dev
The dataset lives in its own repository and the build reads from it, so if you already cloned without submodules, run git submodule update --init --recursive first.
bun run dev # the SRS app
bun run check # every project check: conventions, lint, typecheck, tests, duplicates, unused code
bun run dictionary:dev # the dictionary
bun run dictionary:build # generate all ~38,900 static pages
Anything else scopes to one workspace with --cwd, for example bun run --cwd apps/gokan-dictionary test. bun install also installs the git hooks (conventions and lint before each commit, bun run check before each push).
apps/
gokan-srs/ React 19 SRS app
gokan-dictionary/ Svelte static site generator, one page per entry
packages/
dataset-schema/ the compiled dataset's types, shared by both apps
docs/ Architecture, design system, roadmap, modification log
No backend. The SRS engine runs entirely in the browser, progress lives in local storage, and Google Drive sync is opt-in and writes a single private file in your own Drive. Hosting is S3 and CloudFront, which is most of why it costs nearly nothing to run and can stay free.
The dataset is not vendored here: apps/gokan-srs/dataset/ is a submodule, and both apps build from that one checkout so they can never ship different versions of the same data.
| Layer | Choice |
|---|---|
| SRS app | React 19, TypeScript, Tailwind CSS v4 |
| Dictionary | Svelte 5, SCSS, build-time prerendering |
| Build | Vite (rolldown), Bun |
| Tests | Vitest |
| Hosting | S3 and CloudFront, provisioned with Terraform |
Project rules (for people and coding agents alike) are in AGENTS.md, architecture in docs/ARCHITECTURE.md, the visual language in docs/DESIGN_SYSTEM.md.
Built on other people's work, all of it free:
Licensing for the compiled data is documented in the dataset repository, since each source carries its own terms.