Articles
Published · October 27, 2026

Markdown Notes to Flashcards: Spaced Repetition Without a New App

You can study from the Markdown notes you already have. Pick a card format, choose a scheduler or a hand-run box routine, and review a few cards a day.

You can turn Markdown notes into flashcards without installing a flashcard app: write each card as plain text inside a note, then schedule reviews with a small command-line tool or a box routine you run by hand. Your notes stay ordinary .md files.

Quick answer

Spaced repetition is a review schedule, not a piece of software. According to Wikipedia's overview of spaced repetition, Hermann Ebbinghaus described the forgetting curve in the 1880s and suggested that reviewing material at several intervals could curb that loss. New and difficult cards are shown more often, and older, easier ones less often.

Most flashcard software exists because tracking those intervals on paper is time-intensive. That's the part a tool can take over. The cards themselves can live anywhere you keep text.

Here's what follows: two ways to write cards in Markdown, a few ways to schedule them, and a short daily routine. Both tools below are open source. They read your files instead of pulling them into a database of their own.

Step-by-step

1. Pick one card format

Choose a single structure and stay with it. Two projects show the main options.

Inline cards. carddown reads cards from Markdown or text notes. A single-line card carries a #flashcard tag (or a 🧠 emoji) at the end:

What is HTTP? : HyperText Transfer Protocol #flashcard #web

A multi-line card ends with a line containing --- or ***:

Explain the Bohr model #flashcard #physics
Electrons orbit in quantized energy levels.
Transitions between levels emit or absorb photons.
---

Heading-based cards. Markdown Flashcards (mdfc) uses headings instead. A first-level heading is the category, a second-level heading is the front of the card, and the text under it is the back:

# Distributed systems

## Which types of reliable broadcast are there?

- FIFO broadcast
- Causal broadcast
- Total order broadcast

Inline cards suit short facts. Headings suit longer answers, and they double as a normal outline when you read the note without studying.

2. Write cards in notes you already have

You don't need a separate deck file. Put the card next to the fact it tests, or collect cards at the bottom of a note. Keep it to one fact per card. A card that asks for five things counts as wrong whenever you miss any one of them.

If you take lecture notes, the question column of a Cornell notes layout already holds your questions. Turn each cue into a card. Tags such as #physics also let carddown filter a session, for example carddown revise --tag physics. If you prefer metadata at the top of a file, YAML front matter is a tidy place for a subject label.

3. Choose how cards get scheduled

You have three realistic options.

carddown. It scans a folder, then quizzes you on what's due:

carddown scan ./notes
carddown revise
carddown audit

Its README lists SM2, SM5, and Simple8 as scheduling algorithms, with quality grades from 0 to 5. It keeps review state in a per-vault SQLite database, identifies cards by a content hash, and has no cloud or sync component. audit helps you review orphaned cards and leeches, meaning cards you keep failing.

mdfc. It uses an adapted Leitner system with four difficulty levels. Run mdfc ./flashcards.md to study a file. By default a session is 20 cards, and the -n flag changes that; -n 0 studies everything due today.

No tool at all. The Leitner system is simple enough to run yourself. As Wikipedia describes it, cards sit in boxes. If you answer correctly, the card moves to the next box, which is reviewed less often. If you miss it, it goes back to the first box. One worked example from that article uses three boxes reviewed every day, every three days, and every five days.

You can mimic this with a plain file:

## Box 1 (daily)
- What does the `-n 0` flag do in mdfc?

## Box 2 (every 3 days)
- Which marker ends a multi-line carddown card?

## Box 3 (every 5 days)
- Who described the forgetting curve?

When you answer correctly, move the line down a box. When you miss, move it back to Box 1.

4. Run a short daily review

Keep a review log with date-first file names so sessions sort themselves, and note which boxes you reviewed. Short sessions you actually do beat long ones you skip. If you use mdfc, its 20-card default is a reasonable starting size.

Common problems and fixes

Cards are too big. If you regularly fail a card partway, split it. A card you keep missing is a signal to rewrite it, not to push harder. carddown's audit command is built to surface exactly these.

Cards clutter your notes. Move them into a dedicated cards/ folder and keep prose notes separate. Both tools work from files, so folders are enough.

You edit a card and lose your place. carddown identifies cards by a content hash, so check how a tool tracks cards before you reword hundreds of them. A safe habit is to keep the folder in Git so every change is visible and reversible, and to follow a plan for backing up plain-text notes.

The tools are command-line programs. carddown installs through cargo install carddown or a prebuilt binary, and mdfc is built with Go. That's comfortable on a Mac with a terminal and awkward on a phone. If you mostly study on an iPhone, the box routine above needs nothing but a text editor.

Doing this with Carets

Flashcards in Markdown only work if the files stay plain text, and that's what Carets is built around. It's a native notes and code editor for iPhone, iPad, and Mac that opens Markdown, plain text, and code, so the same .md files your scheduler reads are the ones you edit.

To be clear about the division of labor: Carets doesn't schedule reviews. It's where you write and tidy the cards. Three features help here:

  • Files, projects, and tags. Keep a Flashcards project, with one file per subject, and use tags to group topics.
  • Syntax highlighting. Fenced examples, such as the bash and markdown blocks above, stay readable when you keep command snippets next to your cards.
  • Native and fast. It's built for iOS and Mac rather than wrapped web content, so adding a card between classes takes a few seconds on your phone.

Your files stay portable, so you can move to a different scheduler later without converting anything. Download Carets for iPhone, iPad, and Mac on the App Store.

Frequently Asked Questions

Do I need a flashcard app to use spaced repetition?

No. The method is a schedule, not software. Software mostly saves you the effort of tracking due dates by hand. A Leitner-style box routine in a text file does the same job at small scale.

Which Markdown syntax should I use for cards?

Pick one structure and keep it consistent. Inline markers, as in carddown, suit quick one-liners. Heading-based cards, as in mdfc, suit longer answers. Both are plain Markdown.

Will the scheduling tools change my notes?

carddown keeps its state in a separate SQLite database, while mdfc creates and updates metadata for each card. Read a tool's README before pointing it at notes you care about, and keep the folder in Git so any change is visible.

How many cards should I review per day?

mdfc defaults to 20 cards per session and lets you change that. Start small and raise the number only if your reviews stay quick.