AltFreeStack
Migration guide

How to migrate from Notion to AppFlowy

Notion's Markdown export is complete at the text level, but relational databases (relations, rollups, formulas) come out as flat CSV — the real work is deciding which relations are worth rebuilding by hand in {to}.

  1. 1

    Before exporting: audit which pages use relational databases

    In Notion, check which databases have "Relation" or "Rollup" type columns — those are the ones that will lose their connection on export. Write down by hand which tables relate to each other; the exported CSV doesn't state this explicitly, it just repeats the related page's title as plain text.

  2. 2

    Export the full workspace from Notion

    Go to Settings & members → Settings → Export content → "Export all workspace content" (requires a paid plan), choose Markdown & CSV format, and include file attachments. Notion generates a .zip with one folder per top-level page and nested subfolders for sub-pages, plus a .csv for each database.

  3. 3

    Deploy AppFlowy via AppFlowy Cloud with Docker Compose

    AppFlowy self-hosts as AppFlowy Cloud, which needs PostgreSQL (see the docker-compose.yml on its page). Before importing anything, start the stack, create your admin account, and confirm the desktop/web client connects correctly by pointing it at your server's URL under Settings → Custom Server.

  4. 4

    Import the Markdown .zip into AppFlowy

    With your workspace already open in AppFlowy, use the Markdown import option (space menu → Import) and select the exported .zip. AppFlowy rebuilds the page hierarchy and formatted text, but each database .csv comes in as a new table without the relation columns rebuilt.

  5. 5

    Rebuild the relations and check attachments

    Using the list from step 1, manually recreate each relation column between the new databases in AppFlowy and re-link records by title. Also check that images and file attachments were imported — some older Notion exports link attachments by external URL instead of including them in the .zip.

Before cancelling Notion

Before cancelling Notion, compare the number of top-level pages between both spaces and open at least one database with relations to confirm no record is missing — rollups and formulas don't rebuild themselves, you'll have to recreate them if you need them.

Ready to deploy AppFlowy?

Full profile with license, tech stack and ready-to-copy docker-compose.

View AppFlowy's profile

These steps are a general guideline — the exact export menu can vary depending on Notion's plan and version.