LoopKit
LoopKit
A production-ready flashcard engine with SM-2 spaced repetition for NestJS and React
LoopKit is an open-source flashcard engine implementing the SM-2 spaced repetition algorithm. It ships as two packages that work together to provide a complete study system.
Packages
| Package | Description |
|---|---|
@loopkit/nestjs | Backend module for NestJS with pluggable storage, SRS algorithms, and content pipeline |
@loopkit/react | Frontend library with headless hooks and pre-styled components |
Key Features
- SM-2 Spaced Repetition — Battle-tested algorithm with configurable parameters
- Pluggable Storage — Bring your own database via the storage adapter pattern (Prisma adapter included)
- Headless-First Frontend — Use hooks for full control, or drop in pre-styled components
- Content Pipeline — Template interpolation with optional Markdown, KaTeX, and code highlighting transforms
- Import/Export — CSV and JSON import/export for deck portability
- Statistics — Pure functions for retention rate, study streak, review forecast, and more
- Undo Support — Undo the last review during a study session
- Deck Hierarchy — Nested decks with inherited configuration