Vocabulary, spaced-repetition word trainer
Personal project · open source

The task
Make vocabulary review account for the fact that recognizing a word and producing it are different memory skills.
My role
Product owner and developer; I directed the implementation with Claude Code and review and maintain the complete codebase.
Implemented solution
An open-source Next.js trainer with two independent SM-2 schedules, repository-based storage, and browser speech playback.
A vocabulary trainer with two independent SM-2 tracks, the same spaced-repetition algorithm Anki uses. Recognizing a word and producing it from memory are different skills with different forgetting curves, so they get separate schedules. Next.js App Router and TypeScript throughout. Word data sits behind a repository interface: it lives in Notion today, and swapping the storage later means writing one new class instead of a rewrite. Pronunciation runs on the Web Speech API instead of a paid TTS service.
- Two independent SM-2 tracks: recognition and production, scored separately
- Repository pattern. Notion today, swapping storage is one new class
- Next.js App Router, TypeScript, Tailwind, Prisma and Postgres for streak data
- Speech playback via the Web Speech API, no paid TTS service