untra.dev
Case 05: open sourceLive, open source

Vocabulary, spaced-repetition word trainer

Personal project · open source

Vocabulary spaced-repetition trainer on desktop and mobile

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

Technologies

Next.jsTypeScriptTailwind CSSPrismaNotion API

Related services