Migration guide - roam research to anki

How to migrate from Roam Research to Deckbase

Roam's block-level structure contains review-ready atomic notes, but the [[link]] syntax and nested indentation require cleanup before import. This workflow converts your Roam graph into clean flashcards without losing the connections that make Roam useful.

Deckbase7 min read

When to use this workflow

Roam Research users with daily notes, literature notes, or concept maps who want to convert high-signal blocks into a dedicated spaced repetition loop rather than re-reading the graph.

Treat this as an operational migration process, not just a one-time file upload. The goal is not only successful import, but better review consistency and lower card maintenance overhead in the weeks after switching.

Pre-import checklist

  • Identify which pages contain review-worthy content — not every Roam page needs cards.
  • Export target pages as Markdown files from Roam's Export All function.
  • Decide whether to keep [[page links]] as context in the notes field or strip them entirely.

If one checklist item fails, fix it before import. Upstream cleanup is faster than repairing hundreds of cards after migration.

Recommended field mapping

Roam sourceDeckbase fieldNotes
Block text (stripped)Card front or backRemove [[brackets]], #tags, and ^block-refs
Parent block contextNotes fieldPreserves the conceptual anchor without cluttering the card
#flashcard or #card tagDeck tagUse consistent tagging in Roam to filter export
Page titleDeck nameOne page → one deck keeps review load predictable

Keep mappings stable across related decks. Consistent structure improves batch operations and makes template edits safer later.

Step-by-step migration flow

  1. 1
    Tag blocks you want as flashcards in Roam using a consistent tag like #flashcard or #review.
  2. 2
    Export the page or entire graph as Markdown — Roam produces one .md file per page.
  3. 3
    Run a find-and-replace to strip [[double brackets]], ^block-refs, and #tags from body text.
  4. 4
    Reformat tagged blocks into front/back pairs in a spreadsheet: question on one row, answer on the next.
  5. 5
    Import the cleaned CSV into Deckbase, mapping front/back columns and adding page title as deck name.
  6. 6
    Review a 20-card pilot for quality — rewrite blocks that were atomic notes but not true retrieval prompts.

Common errors and fixes

[[Links]] not stripped before import

Run a global find-and-replace removing [[...]] wrappers; leave the link text if contextually useful.

Nested blocks import as one long card

Flatten indented children into separate cards during spreadsheet formatting — one fact per card.

Daily notes have too much low-signal content

Only export pages where you explicitly tagged blocks; skip raw daily notes pages entirely.

Block references (^abc123) appear in card text

Replace or remove ^block-ref anchors during the find-and-replace cleanup pass.

Use a small pilot deck after each fix. If pilot quality holds, apply the same correction pattern to the full batch.

Example output quality checks

  • Front: What is Roam's core unit of information? | Back: The block — an atomic paragraph that can be referenced anywhere in the graph.
  • Front: Define the Zettelkasten 'literature note.' | Back: A processed summary of source material in your own words, linked to permanent notes.
  • Front: What does FSRS optimize relative to SM-2? | Back: Adaptive memory stability estimates per card, not fixed ease factors.

During QA, verify each sample card for clarity, atomicity, and answer precision. Avoid importing cards that only test wording without testing understanding.

A practical test: if you can answer accurately in under 10 seconds during review, the card is usually scoped well. If not, split or rewrite it.

FAQ

Do I need to leave Roam to use Deckbase?

No. Most users keep Roam for note-taking and capture, and use Deckbase for dedicated daily review. Export the blocks you want to memorize, import once, and keep your Roam workflow intact for everything else.

Can I automate the Roam → Deckbase export?

Yes. If you have the Deckbase MCP integration, you can script card creation directly from processed Roam exports using the API. For one-off migrations, the manual CSV path is faster for most users.

Should I import my entire Roam graph?

No. Import only blocks explicitly tagged for review. Importing your full graph produces mostly low-quality cards and an unmanageable review queue. Be selective — quality over coverage.

Turn your Roam blocks into daily review cards

Start with one high-signal page, import as a pilot deck, and validate card quality before migrating the full graph.

Tip: for advanced workflows, keep your original export as backup and track each migration attempt by batch name and date.

Query intent targeted: roam research to anki. This guide is reviewed as a practical migration workflow page, not a generic informational article.