DecksMD

DecksMD vs the Spaced Repetition plugin

The Spaced Repetition plugin pioneered flashcards inside Obsidian and remains a good choice. DecksMD takes a different architectural bet — structural markdown instead of inline syntax, and a database instead of per-note metadata.

A note on tone before anything else: the Spaced Repetition plugin by st3v3nmw built this category inside Obsidian. It is still actively useful, and if you like writing inline :: cards it may well remain the right tool for you. This page explains where DecksMD differs, not why the other is bad.

Two different bets

The plugins disagree about two things.

How a card should be written. Spaced Repetition uses inline syntax — Question :: Answer, ? separators, curly-brace cloze. The card is explicit, marked up wherever you put it. DecksMD instead reads the structure you already use: a heading and the paragraph under it, a two-column table, a ==highlight==. Nothing is marked up as a card, because the shape of the note is the markup.

Neither is obviously correct. Inline syntax is precise and lets you put a card anywhere. Structural parsing means your notes stay readable to someone who has never heard of either plugin, but it asks you to write in a particular shape.

Where scheduling should live. Spaced Repetition keeps scheduling data in your notes. DecksMD keeps it in a small SQLite database in your vault, with per-device append-only sync logs beside it. Storing state in notes is transparent and diffable; it also means every review dirties a file, which is precisely the situation that produces sync conflicts when two devices review the same material. The database approach is less legible, but it merges deterministically rather than asking your sync provider to reconcile two edits of one line.

Side by side

DecksMDSpaced Repetition
Card syntaxStructural — headings, tables, ==cloze==, image occlusionInline — ::, ?, {{…}}
Scheduling stored inA local SQLite databaseYour notes
AlgorithmFSRS-6, with on-device tuningSM-2
Multi-deviceDatabase merge plus per-device logsWhatever your sync provider does with the note
Image occlusionBuilt inNo
ExamsBuilt inNo
Anki import.apkg with review historyNo

What the migrator does

DecksMD ships a one-click migrator rather than asking you to reformat anything by hand.

It reads the Spaced Repetition plugin’s own separator and tag settings, so it recognises however you configured your cards — :: and :::, ? and ??, ==highlight== and {{curly}} cloze, and whole-note #review cards. Legacy reverse cards (Front ::: Back) become two cards, each direction scheduled independently.

For each source note it produces two things: a deck file containing the cards in DecksMD’s structural format, and a rewritten copy of the note with the inline syntax removed so it reads as ordinary prose. The two are cross-linked in frontmatter. Nested folder structure is flattened into breadcrumb context, and the migrator routes each note to either tables or headings depending on what its content suits.

Scheduling is translated from SM-2 into FSRS-6 with a synthesized review log per card, so a card that was on a long interval stays on a long interval.

Crucially, it is additive. Output goes to a target folder you pick, mirroring your source structure and grouped under the #decks/migration tag. Your original notes are never touched. Re-running overwrites only what the migrator itself generated. That means you can migrate, review both for a fortnight, and change your mind at no cost.

Run the Migrate from Spaced Repetition plugin command, or use the migrator icon in the deck panel toolbar. Details in Import & export.

What you gain, and what you give up

You gain FSRS-6 with on-device weight training, native image occlusion, exam decks, filter and custom decks, a flashcard manager for bulk edits, statistics, Anki import and export, and a conflict-resistant sync model.

You give up the ability to drop a card anywhere in a note with inline syntax, and the transparency of scheduling data you can read in the file itself. If those two things are what you value most, stay where you are — that is a legitimate preference, not a mistake.

Common questions

Can I migrate from the Spaced Repetition plugin without losing progress?

Yes. The built-in migrator converts every legacy card into a DecksMD deck and translates the SM-2 scheduling into FSRS-6 with a review log per card, so reviews resume rather than restart. Your original notes are never modified.

Do I have to rewrite my cards?

No. The migrator recognises the separators and tags you configured, including :: and :::, ?/??, ==highlights==, {{curly cloze}} and whole-note #review cards. It also rewrites each note into readable prose alongside the generated deck.

Can I run both plugins at once?

Yes, during a transition. The migrator is additive and writes into a folder you choose, so nothing about your existing setup changes until you decide to turn the old plugin off.

What is the actual difference between them?

Authoring and storage. Spaced Repetition uses inline syntax and stores scheduling in your notes; DecksMD reads ordinary markdown structure and keeps scheduling in a local SQLite database that merges across devices.

Try DecksMD

Free and open source. Install from Obsidian's Community Plugins, tag a note you have already written, and review it a minute later.