- Home
- Resources
- Anki import
- How to migrate from Roam Research to Deckbase
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.
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 source | Deckbase field | Notes |
|---|---|---|
| Block text (stripped) | Card front or back | Remove [[brackets]], #tags, and ^block-refs |
| Parent block context | Notes field | Preserves the conceptual anchor without cluttering the card |
| #flashcard or #card tag | Deck tag | Use consistent tagging in Roam to filter export |
| Page title | Deck name | One 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
- 1Tag blocks you want as flashcards in Roam using a consistent tag like #flashcard or #review.
- 2Export the page or entire graph as Markdown — Roam produces one .md file per page.
- 3Run a find-and-replace to strip [[double brackets]], ^block-refs, and #tags from body text.
- 4Reformat tagged blocks into front/back pairs in a spreadsheet: question on one row, answer on the next.
- 5Import the cleaned CSV into Deckbase, mapping front/back columns and adding page title as deck name.
- 6Review 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
Nested blocks import as one long card
Daily notes have too much low-signal content
Block references (^abc123) appear in card text
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?
Can I automate the Roam → Deckbase export?
Should I import my entire Roam graph?
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.