Decks is a powerful spaced repetition flashcard plugin for Obsidian that helps you learn and memorize information efficiently using the FSRS algorithm, built with TypeScript and Svelte for a reactive and type-safe UI.
If you like this plugin, consider buying me a coffee and I will add more features.
- Install the Plugin: Download and enable Decks in your Obsidian plugins
- Open the Panel: Click the brain icon in the ribbon or use the command palette
- Create Your First Deck: Follow the guide below to create flashcards
- Start Learning: Click on any deck to begin reviewing flashcards
Create a markdown file and tag it with #flashcards:
---
tags: [flashcards/spanish-basics]
---
# What does "Hola" mean in English?
Hello
# How do you say "Thank you" in Spanish?
Gracias
# What is the Spanish word for "water"?
AguaHow it works:
- Each header becomes the front of a flashcard
- All content until the next header becomes the back
- The filename becomes your deck name
- Cards are automatically extracted and synced
Create flashcards using a two-column table:
---
tags: [flashcards/vocabulary]
---
| Question | Answer |
|----------|---------|
| What is photosynthesis? | The process by which plants convert sunlight into energy |
| Define gravity | The force that attracts objects toward each other |
| What is DNA? | Deoxyribonucleic acid - carries genetic information |How it works:
- First column = front of flashcard
- Second column = back of flashcard
- Header row is ignored
- Perfect for structured Q&A format
- Use descriptive tags:
#flashcards/spanish-verbsinstead of#flashcards/deck1 - Keep cards atomic: One concept per card
- Use images and formatting: Markdown formatting is fully supported
- Organize by topic: Group related concepts in the same deck
New Cards ๐
- Cards you've never seen before
- Shown first in each review session
- Default limit: 20 new cards per day
Learning Cards ๐
- Cards in short-term review cycle
- Use fixed intervals: 1min โ 10min โ 1 day
- Help reinforce new information while fresh
Due Cards โฐ
- Part of long-term spaced repetition
- Scheduled based on your performance
- Intervals grow with successful reviews
Decks uses the Free Spaced Repetition Scheduler (FSRS), a modern algorithm that:
- Adapts to your performance: Cards you struggle with appear more frequently
- Optimizes retention: Maximizes what you remember with minimal reviews
- Predicts forgetting: Schedules reviews just before you'd forget
- Learns your patterns: Improves scheduling based on your review history
When reviewing flashcards, you have four difficulty options:
Again ๐ (Red)
- "I don't remember this at all"
- Resets the card to learning state
- Shows the card again soon
Hard ๐ (Orange)
- "I struggled but got it eventually"
- Increases interval slightly
- Shorter than normal spacing
Good โ (Green)
- "I remembered it correctly"
- Normal interval increase
- Default choice for successful recall
Easy ๐ (Blue)
- "Too easy, I know this well"
- Longer interval increase
- Use sparingly for very familiar content
Daily Progress
- Track new cards learned
- Monitor review accuracy
- See time spent studying
Forecast
- Predict future review workload
- Plan your study schedule
- Understand long-term commitments
Retention Rate
- Measure how well you're remembering
- Identify problematic topics
- Adjust study strategies
- Create a deck: Make a markdown file with
#flashcardstag - Add flashcards: Use headers+paragraphs or table format
- Open Decks panel: Click the brain icon in the sidebar
- Start reviewing: Click on any deck to begin
- Check your dashboard: See what's due today
- Review due cards: Handle spaced repetition reviews first
- Learn new cards: Add new knowledge within daily limits
- Check progress: Monitor your learning statistics
Access deck settings to customize:
- Daily new card limits
- Review order preferences
- Deck-specific configurations
- FSRS algorithm parameters
- Smart Parsing: Automatically extracts flashcards from markdown headers and paragraphs
- FSRS Algorithm: Uses the latest Free Spaced Repetition Scheduler for optimal learning
- Rich Statistics: Track your learning progress with detailed analytics
- Deck Management: Organize flashcards by tags and configure review limits
- Review Heatmap: Visualize your review activity over time
- Time Tracking: Monitor your review pace and efficiency
# Clone the repository
git clone https://github.com/dscherdi/decks.git
cd decks
# Install dependencies
npm install
# Build for development
npm run build:dev
# Run tests
npm test
# Build for production
npm run build
# Build for release (includes README/LICENSE)
npm run build:release
This plugin uses automated GitHub Actions for releases:
- Create a version tag:
git tag v1.2.3 && git push origin v1.2.3 - GitHub Actions automatically:
- Runs all tests
- Builds the plugin with all assets in
dist/ - Generates release notes from PROGRESS.md
- Creates GitHub release with all
dist/files - Validates all files before release
Each release includes:
main.js(238 KB) - Core plugin codestyles.css(63 KB) - Plugin stylingmanifest.json- Plugin manifestdatabase-worker.js(4 KB) - Database worker threadassets/sql-wasm.js(48 KB) - SQL.js JavaScriptassets/sql-wasm.wasm(644 KB) - WebAssembly binaryREADME.md&LICENSE- Documentation
Total release size: ~1MB
- Frontend: Svelte components with TypeScript
- Database: SQLite via sql.js with optional worker thread
- Algorithm: FSRS-4.5 spaced repetition
- Build: esbuild with production optimizations
