A spaced repetition flashcard system for mastering general knowledge through adaptive multiple-choice question testing.
Note: Both use LLM generated course materials. You can find them under data/courses.
Repeatrom uses a two-tier adaptive selection algorithm to present questions at appropriate difficulty levels based on demonstrated competence. Questions move through four mastery pools — Latent, Test, Learned, and Master — with automatic promotion and demotion based on consecutive correct or incorrect answers.
Key features:
- Adaptive learning — question difficulty adjusts based on performance
- Spaced repetition — strategic timing prevents cramming and premature forgetting
- General purpose — works for any subject expressible as multiple-choice questions
- Offline-capable — data stored locally in IndexedDB
- Frontend: React 19, TypeScript, Tailwind CSS 4
- Build tooling: Vite 7
- Runtime: Bun
- Storage: IndexedDB (browser-local)
- Bun installed
Install dependencies:
bun installStart the development server:
bun run devBuild for production:
bun run buildPreview the production build:
bun run previewLint the codebase:
bun run lintsrc/
components/ # Reusable UI components
screens/ # Page-level screen components
context/ # React context providers
data/ # Data layer and IndexedDB implementation
assets/ # Static assets