Spaced Repetition System - A file-based note system built for programmers.
Spares was built to address the numerous drawbacks of Anki. See this for a more detailed comparison with Anki.
Warning
Spares is in alpha. Expect frequent breaking changes.
- File-based System: All notes are stored as individual plain text files, enabling easy searching with standard tools like
ripgrep - Multiple Markup Languages: Support for Markdown, LaTeX, and Typst notes
- Advanced Cloze System:
- Customizable cloze delimiters (not limited to double curly brackets)
- Automatic cloze numbering
- Flexible Architecture:
- All cards are fundamentally cloze-based
- Decks implemented as tags
- Pluggable scheduler (FSRS built in)
- Image Occlusion:
- Integrated as a cloze type (not a separate note type)
- Drawn in the web app's note editor
- Support for interweaving image occlusion with text clozes
- Hint display over image clozes
- Cross-note Referencing:
- Keyword-based linking system
- Support for partial references
- Multiple source citations
- Tag Hierarchy: Tree-like structure for organizing notes
- LaTeX Integration:
- File-based templates that automatically update
- Background parallel rendering
- Search Queries:
- Query language with relative dates, review history fields and note links
- Results ranked by relevance, with
--explainto show how a query is read - Saved searches, synced across devices
- FSRS Scheduling:
- Optimizer that fits FSRS's parameters to your review history (
spares card optimize) - Load balancing of due dates across days
- Optimizer that fits FSRS's parameters to your review history (
- Review Queue:
- Daily limits, review order, presets by tag, sibling burying and leech handling, as in Anki
- Cards held back until the notes they link to are learned
- Self-hosted Sync Server: Two-way sync that merges notes changed on both sides, tagging conflicts with
sync-conflict - Deployment:
spares deploysets up a VPS reached over Tailscale (see Deploying a Sync Server)
- CLI: Full-featured command-line interface, including reviewing
- Web App:
- Installable on a phone, with offline reviewing
- Note editor with Vim mode, image occlusion, image and audio uploads
- Statistics graphs and a built-in manual
- Neovim Plugin: Tag and keyword completion (see nvim)
- Anki Migration: Easy import from Anki decks
- Customizable: Create your own parsers and workflows
See our Getting Started Guide.
The manual is also in the web app, under Manual.
- Getting Started
- Deploying a Sync Server
- Concepts
- Workflows
- Comparison with Anki
- API docs, with every setting and how each part works:
cargo doc --workspace --no-deps --document-private-items --open
We welcome contributions! Please see our Contributing Guide for details.
This project is licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE)
- MIT License (LICENSE-MIT) at your option.