Skip to main content

Main navigation

Start for freeLog in
Moving your dataImportObsidianMigrationmarkdownWikilinks

Import an Obsidian vault

This one works directly on the web. A plain markdown folder from Notion, Bear, and others is handled by the same card.

about 4 min Updated October 13, 2026

Zip up the vault

1

Compress the vault folder as it is

In Finder, right-click the vault folder → Compress; in File Explorer, right-click → Compress to ZIP file. Do not rearrange the folder structure — that structure becomes the page hierarchy.

TIPThe .obsidian settings folder is excluded automatically, so there is no need to delete it first.
2

Include the attachment folder

The attachment folder holding your images and PDFs (usually attachments/ or assets/) has to go into the archive too, or the images in the body will not survive.

3

Check the size

At most 50MB per zip. Split a large vault by top-level folder and upload it in several passes.

CAUTIONAn import cannot be undone. Trying it once with a small folder first is recommended.

Import into Tabple

1

Settings → Backup → Import notes

Press 'Open the import screen' under Settings → Backup (or go straight to /settings/import) → pick the target project → drop the .zip on the 'Obsidian · plain markdown' card.

2

Check the result

The card shows 'Done: N pages' (the pages created), 'N skipped / N errors', and 'N attachments uploaded'. If there are errors, 'View errors' lists the skipped items and why.

Conversion rules

  • Folders map to the page hierarchy. Vault/Projects/Alpha.md → Vault → Projects → Alpha
  • If a sibling folder Alpha/ shares the name of Alpha.md, that folder's contents become children of Alpha (the Obsidian folder-note convention — same as the desktop app)
  • [[Note]] · [[Folder/Note]] · [[Note#Heading]] · [[Note|display name]] → all matched by title and linked as page mentions. If the target is not in the same vault, they stay as text
  • Both ![[attachment.png]] embeds and ![](../assets/diagram.png) relative paths are uploaded as attachments and substituted as inline images (including non-ASCII file names and names with spaces)
  • tags: in the YAML frontmatter → preserved as a #tag paragraph at the very top of the body, and title:, if present, is used as the page title. The raw frontmatter is not left in the body
  • A file's modified time → preserved as the page's created and modified times
  • Tables, code blocks, checklists, and quotes are converted as they are, and [[...]] inside a code block is not substituted (so command examples survive)
  • > [!note] Title callouts → callout blocks (note, tip, warning, success, danger, and others map to 4 kinds), ==highlight== → highlight mark, %%hidden comment%% → hidden comment, $math$ and $$block math$$ → KaTeX math blocks
  • $, ==, and %% inside code blocks and inline code are not converted — command and code examples do not turn into math or highlights

Cautions

  • The Wiki page tree goes 4 levels deep. A deeper vault does not lose notes; they are attached to the last folder within the allowed depth — part of the hierarchy is flattened, but every body comes in
  • Only images and PDFs are imported as attachments (magic-byte allowlist). An attachment larger than 25MB is skipped
  • Imported attachments count toward your account's total storage. Once the limit is full, the import is rejected with a 413
  • Plugin-only blocks such as Dataview and Templater come in as code or text (the raw source, not the plugin's rendered output)
  • With the desktop app you can also sync the vault folder in both directions without zipping it — see the vault-sync guide
  • You can start an import 3 times a minute, 15 times an hour, and 50 times a day. Once you hit a limit, try again after the time shown in the message.
  • The number of Wiki pages stays within the project owner's plan limit (Free 100 · paid plans unlimited). If the notes you are importing would go past what is left, the import is rejected.