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.
Zip up the vault
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.
.obsidian settings folder is excluded automatically, so there is no need to delete it first.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.
Check the size
At most 50MB per zip. Split a large vault by top-level folder and upload it in several passes.
Import into Tabple
Settings → Import notes
Go to /settings/import → pick the target project → drop the .zip on the 'Obsidian · plain markdown' card.
Check the result
imported is the number of pages created, attachmentsUploaded the number of attachments uploaded. 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 ofAlpha.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 andrelative 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#tagparagraph at the very top of the body, andtitle:, 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] Titlecallouts → 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-syncguide

