Skip to content

thomasrribeiro/flashcards

Repository files navigation

Flashcards

An in-browser spaced-repetition system.

Live Demo: https://thomasrribeiro.com/flashcards/

Flashcard interface

Review what's important and outsmart the forgetting curve.

Getting started

Prerequisites

  • Node.js (v14 or higher)
  • npm

Creating flashcards

Card format

Flashcards are written in markdown files using a Q:/A: or C: format.

Question/Answer Cards:

Q: What is the capital of Italy?
A: Rome.

Cloze Deletion Cards:

C: [Rome] is the capital of Italy.

Each [text] in a cloze card creates a separate card where that text is hidden.

Supported Features:

  • Multiline content - Questions and answers can span multiple lines
  • LaTeX math - Use $inline math$ or $$display math$$ for equations
  • Images - Embed with ![alt text](image-url)
  • Audio - Embed with ![audio](audio-file.mp3)

File Structure

Organize your flashcards in public/collection/ with the following structure:

public/collection/
├── my-deck/
│   └── flashcards/
│       ├── topic1.md
│       └── topic2.md
└── another-deck/
    └── flashcards/
        └── cards.md

Each directory in public/collection/ becomes a separate deck. Place your markdown files in the flashcards/ subdirectory.

Installation

1. Install dependencies:

npm install

2. Run the app:

npm run dev

Open your browser to the URL shown in the terminal.

⚠️ Important

When running locally without GitHub authentication, your review progress is stored in localStorage only. This means:

  • Progress is saved locally in your browser
  • Your Free Spaced Repitition Scheduler (FSRS) will be lost if you clear browser data
  • No cross-device sync

Prior Work

License

© 2025 by Thomas Ribeiro. Licensed under the Apache 2.0 license.

Releases

No releases published

Packages

No packages published