Benkyō
A spaced-repetition Japanese learning platform built for Ateneo's Introduction to Japanese 11 class. Schedules vocabulary reviews around retention patterns and tracks daily study streaks — serving 50 real students.
- TypeScript
- Next.js
- React
- Tailwind CSS
Problem
Students in Ateneo's Introduction to Japanese 11 needed a consistent way to retain new vocabulary, but generic flashcard tools don't reflect how forgetting actually works — they review everything on the same cadence, wasting time on words you already know and under-reviewing the ones you don't.
Approach
I built Benkyō around a spaced-repetition system (SRS) that schedules each vocabulary item based on retention patterns, prioritizing low-recall words so study time targets what's most likely to be forgotten. A 7-day activity tracker surfaces engagement trends and nudges the daily-habit loop that makes SRS work, and the whole thing was deployed for a live class of 50 students.

Technical Decisions
Retention-driven review scheduling
The core of Benkyō is the SRS policy: each item's next review is computed from recall history, and low-recall items are surfaced first. Getting the interval policy right mattered more than the UI — it's what makes daily study compound instead of feeling like busywork.
7-day activity tracker for habit formation
SRS only works if people show up daily, so I added a rolling 7-day activity tracker to make engagement visible and reinforce consistent review sessions — turning the data the app already had into a motivation surface.
Tradeoffs
Tuned for one class vs. general use
Benkyō was scoped to a specific course's vocabulary and cadence. That made it genuinely useful for those 50 students, but generalizing to arbitrary decks and languages is future work.
What I learned
- 01
Shipping to 50 real classmates is a sharper feedback loop than any solo side project.
- 02
The interval policy, not the interface, is where a study app lives or dies.
- 03
Making engagement visible is a feature, not a vanity metric.