Case Study•July 2024•6 min read
Building JapanApp: From Vision to SRS Architecture
How I engineered JapanApp to help Japanese learners master Kanji stroke orders and vocabulary retention.
NX
Muhammad Yusuf Arrofi@NXRts // Software Engineer
Learning Japanese Kanji can be overwhelming. With thousands of characters, stroke orders, Onyomi, and Kunyomi readings, rote memorization without systematic intervals leads to high drop-out rates. I decided to build JapanApp (japan-mee.vercel.app) to tackle this challenge directly.
The Technical Challenge The core requirement was twofold: 1. **Interactive Stroke Order Canvas**: Rendering SVG vectors dynamically and evaluating whether user finger or cursor strokes follow proper stroke trajectory without high latency. 2. **Spaced Repetition System (SRS)**: Implementing an algorithm inspired by SuperMemo SM-2 to predict optimal review intervals based on difficulty feedback.
Architecture with Next.js & TypeScript Using Next.js alongside React and TypeScript allowed for server-rendered kanji dictionaries while keeping the interactive flashcard practice strictly client-side for zero-lag responsiveness. By persisting progress with local state synchronization, learners can study seamlessly with rapid feedback loops.
ReactNext.jsTypeScriptSRS AlgorithmJapanese
Explore More Knowledge
View All ArticlesContinue reading our technology essays and architecture case studies.