Skip to content

datonedoe/graybox-flashcard-desktop

Repository files navigation

Flashcard Desktop

A cross-platform desktop flashcard application with spaced repetition scheduling (SRS). Built with Electron and React, it integrates seamlessly with Obsidian vaults by storing flashcards as markdown files.

Features

  • Spaced Repetition Algorithm: SM2-like scheduling with customizable ease and interval settings
  • Multiple Card Formats:
    • Multi-line cards using ? (or ?? for bidirectional)
    • Inline cards using :: (or ::: for bidirectional)
    • Cloze deletions with ==highlighted== or {{curly}} syntax
  • Obsidian Integration: Works directly with your Obsidian vault - no data migration needed
  • File Watching: Auto-syncs when markdown files change externally
  • Keyboard-First Design: Space to flip cards, 1-4 for responses, Escape to exit
  • Statistics Tracking: Monitor your review progress and scheduling

Card Format Examples

Multi-line card:

What is the capital of France?
?
Paris

Inline card:

Capital of France::Paris

Cloze deletion:

The capital of France is ==Paris==.

Tech Stack

  • Electron - Cross-platform desktop framework
  • React - UI framework
  • TypeScript - Type-safe development
  • Zustand - State management
  • Vite - Build tool
  • Tailwind CSS - Styling

Development

# Install dependencies
npm install

# Run in development mode
npm run electron:dev

# Build for production
npm run build

# Package for distribution
npm run dist

How It Works

  1. Select your Obsidian vault folder
  2. The app scans for markdown files and extracts flashcards
  3. Files are grouped by folder into "decks"
  4. Cards are filtered by due date for review
  5. Your responses update scheduling metadata directly in the markdown files

Scheduling data is stored inline as HTML comments:

What is 2+2?
?
4
<!--SR:!2024-02-15,7,250-->

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages