Notes on coding agents and the pages they leave behind, on moving between notes apps, and on the plain mechanics of keeping what you think. Written and published from a Sumibako vault.
What a Notion export really contains: the writing and the page tree come out well, a database leaves as one frozen view, and comments only survive as HTML.
Prashant Shaw
Founder, Sumibako
6 min read
"I can always export" is one of the most comforting sentences in software, and it is doing a lot of unpaid work. Notion's export is real, and for pages of writing it is good. For databases it is a photograph of one view. For everything else it depends on the format you pick, and most people pick the wrong one for where they are going.
I wrote an importer for these zips, so I have read more Notion exports than is healthy. Here is what is in the box, what is not, and a ten-minute test you can run on your own workspace, whether or not you ever leave.
🧭 Getting the zip
For one page, open the ••• menu, choose Export, and pick a format. For everything, open Settings, then General under Workspace, and choose Export all workspace content. That one only works on desktop and the web. Notion's help page has the current menus, and menus move faster than blog posts.
There are three formats: PDF, HTML, and Markdown & CSV. Two options matter. Include subpages brings the pages under a page along with it, and Create folders for subpages keeps the tree as folders. PDF with subpages is only on the Business and Enterprise plans.
A big export can arrive by email as a download link, and a workspace export link expires after seven days.
⚠️WARNING
Download it the day it arrives. A backup that expired in your inbox is a very convincing feeling of safety with nothing behind it.
📦 What is in the box
A Markdown export is a folder tree that mirrors your pages. Each page is a .md file, and if it has pages under it, a folder beside it holds them:
Every page file ends with a 32-character hex id, which is Notion's own name for the page. Each file starts with the page's title as a
, and that heading is the one to trust, because the filename is a worse copy of it: some characters come out percent-encoded, some do not come out at all. Images and attachments come out as separate files beside the pages that used them. A very large export comes as a zip of zips, split into parts, each wrapped in its own
Export-...
folder.
✅ What survives well
The writing. Headings, paragraphs, bold and italics, lists, quotes, code blocks and simple tables all come out as ordinary Markdown that any editor can open. The page tree survives as folders.
For a workspace that is mostly documents, this is a genuine exit. You could open that folder in any Markdown editor today and carry on writing, which is more than a lot of apps offer, and Notion deserves the credit for it.
The fragile part is links between pages. They are tied to Notion's file names and addresses, so they are the first thing to check, and step four of the test below does exactly that.
🗃️ Databases: the big one
A full-page database exports as a CSV file, and its rows, which are pages in their own right, export as Markdown files in a folder. What does not come with it is the thing that made it a database. Notion's help page is direct about this: "You can only choose between the current view and the default view. Exporting all views at once isn't supported."
So the board, the calendar, the filters, the sorts and the grouping stay behind, flattened into the one table you exported. If your workspace is mostly databases, the Markdown export is a data dump, not a backup. The data is all there. The shape you spent a year building around it is not.
🕳️ What does not come out at all
Comments. The HTML export includes them, at page and block level. The Markdown export does not.
Page history and permissions. Not in the export.
Pages you cannot see. Other people's private pages are left out, which is correct, and still surprises people who export a shared workspace and find it smaller than they remember.
🔍 The filename puzzle
This section is for anyone writing a script against an export, and it is the reason my importer is longer than I would like to admit.
A page and the folder of its children are not spelled the same. In current exports the file keeps its id and the folder drops it, so Quick Note 086a....md sits next to a folder called Quick Note. Older exports kept the id on both. And Notion caps the length of a name, but a file spends 33 characters of that budget on its id while the folder spends none, so a long title gets cut at two different places and the two names only agree on how they start.
So matching a folder to its page is not a string comparison. Mine tries an exact match, then the id, then the names without the id, then both names folded down to letters and numbers, and finally a shared opening for long titles, best match first. A split export adds one last twist: its parts repeat the folders they have in common, so the same page can arrive twice and has to be merged rather than doubled.
None of this is a complaint. A zip of plain files with stable ids is a better export than most apps give you. It is just a zip that assumes a patient reader, and my patience is now mostly code.
🧪 Test your own export in ten minutes
1️⃣ Export one page that has pages under it, as Markdown & CSV, with Include subpages on.
2️⃣ Open the zip and count. Are all the pages there, nested the way you expect?
3️⃣ Open your most important database's CSV in a spreadsheet. Is this something you could work from, or only something you could rebuild from?
4️⃣ Follow an image and a link between two pages. Do they still go somewhere?
5️⃣ Write down what you would have to rebuild by hand. That list is the true cost of leaving, and it is worth knowing even if you never do.
🚪 If you do take it somewhere
Match the format to where you are going. Obsidian's own guide goes further than I have: it recommends that you "do not use Notion's Markdown export as it omits important data", and its importer can bring databases across through Notion's API, as Bases. If Obsidian is where you are headed, follow their guide, not this post.
Mine is Sumibako, and its importer takes the Markdown zip as it comes, zips inside zips included. It rebuilds the tree and keeps headings, lists, quotes, code and tables. It does not take databases or images: it counts them and tells you, because a page full of links to files that were never copied is worse than one that admits they stayed behind. Links between pages are not reconnected yet, so those need linking again by hand. A page over 200,000 characters arrives with its tail trimmed, and the importer tells you which ones.
🤷 The short version
For writing, a Notion export is a real way out. For databases, it is one view, frozen. For comments, choose HTML. Download it the day it arrives, run the ten-minute test once, and "I can always export" becomes a sentence you have actually checked, rather than one you have been meaning to.
Security news, 25 October to 2 November 2026: a backdoored Claude Code extension, an unpatched Linux bug and Trigger.dev
A tampered Claude Code extension in Cursor's marketplace, CVE-2026-98432 still unpatched on Ubuntu, and Trigger.dev: what happened and what to check.
6 min read
Projects 1a2b3c....md
Projects/
Launch plan 4d5e6f....md
Roadmap 7a8b9c....csv