Migrating from Notion to Obsidian
My journey migrating my knowledge base from Notion to Obsidian
I have been using and recommending Notion for a while now and I’ve gotten a lot of people to use it. However, I have my issues with it.
- I don’t own where the data lives.
- I don’t trust them with what they do with my data, no matter how highly regulated it might be.
- Databases, buttons, formulae are all great features, but for basic use-cases, it seems counter-productive to do so much (this leads to point 5).
- Larger databases often suffer quite a lot with performance.
- Maintaining databases sometimes just feels equivalent to ricing a Linux distro (my friends like the default waybar theme and I still love them). The maintenance gets in the way of the work quite often.
In April, I finally decided to use the export feature in Notion to move all my data to HTML files and used the Obsidian Importer to convert everything to Markdown files compatible with Obsidian. The output of the markdown files wasn’t quite perfect and it took me a while to fix some of the larger databases.
From the get go, I missed having the structure of databases but I was open to doing things the Obsidian way (if there is one). I started using obsidian-dataview to replicate the experience but the user experience of it is quite clunky and playing around with filters is a hassle, even for someone very familiar with writing JavaScript/SQL-like queries. I ended up letting go of the idea of this structure in favour of obsidian-task’s Global Query. It is also good to see that Obsidian 1.9.0 now has an official plugin to compose database views.
Sync across devices
My Obsidian vault shares the same repository as my website since I also publish my clippings/readings to the website’s library section. This was previously done using API calls to Notion on build time, but now the markdown files are just available on the repository, leading to a decrease in build time.
Syncing across devices (my mobile and two laptops) is done using Syncthing. This can be quite problematic if there are a lot of conflicts but, so far this has worked fine.
Publishing
My website, written in Astro, has blog posts written in MDX
. Now that my phone also received the .mdx
files from my website’s blog, I decided it was a good time to consider refactoring to markdown
files which I could edit on Obsidian.
Using remark-directive and their idea of a rather useless example, I converted all .mdx
files to plain .md
with no degradation in the functionality of the pages.
:::figure{.full-bleed}

:figcaption[My figcaption works, this is similar to markdoc]
:::
Moving forward
There is a lot to be said about the current setup that makes it inconvenient:
- Plain markdown can’t possibly be indexed well as my Clippings and content increases.
- Obsidian is closed-source, and possibly might just be as/more suspicion-worthy as Notion is. Logseq might be an alternative worth looking into.
- GitHub might just be as uncool about my data as Notion.
- Syncing isn’t exactly perfect.
- Not being in the network will lead to an inconsistent state, as these things go for P2P networks.
- Purchasing Obsidian Sync seems like overkill for my current vault size/complexity.
Self-host soon.