This post discusses the idiomatic workflow translation from Roam to Obsidian. For official instructions on export/import, see the official Roam Research import guide
For the past few weeks and over the next month or so, I’m attempting to transition my work from Roam to Obsidian (mainly due to slow performance when I push it with queries/backlinks). I’ve been using Obsidian for a while and loving it to manage the markdown files on my Jekyll based website, but I’m trying to see if I can really work in Obsidian. I’m not fully convinced yet, but very optimistic. I learned quickly that the design of Obsidian does not support my old “throw everything in the daily notes” approach from Roam. Below is a description of both, and how I’m adjusting to better utilize Obsidian’s strengths while gaining a similar effect to Roam’s approach.
I really think that’s probably the biggest thing Roam expats need to get used to… Roam interprets branches of trees (in filters and queries) in the same way that Obsidian interprets a page (in search and backlinks). I have a description below of what’s essential to this post, but you can see a full writeup of the way indentation trees work in my winning roamgames onboarding submission
So in Obsidian, you make a lot of separate pages, and make sure those pages have all of the information you want available in a search result or backlink search on those pages. These pages won’t necessarily be as atomic or contextualized as having many branches of a tree in Roam would. But in Obsidian, you need to get comfortable with many separate pages that each link to everything you want, and you also need to get comfortable with navigating a few steps - finding a page and then clicking on the atomic pages that it links to, rather than expecting to find everything in your first query.
Here I have an example of the daily notes in Obsidian and Roam. For context, one of my side projects right now is working on Figma plugins to make it better for knowledge management purposes. I’m also in a group of other Roam expats trying to figure out how to make Obsidian work for us.
In Roam, my Daily notes page would look like this:
In Obsidian, equivalent content would look like this:
Okay, now let’s say I want to find my work on Figma plugins.
In Roam, I would filter backlinks to Figma or run a query relating Figma and plugins. That bullet in my daily notes would not show up, because sibling nodes on the same page are viewed as separate. Everything that is either in the same block as Figma or indented under it is related to it, but it’s not related to Obsidian and Plugin on the same page.
In Obsidian, if I search for “Figma plugin” or use the new “search within backlinks” feature to search “plugin” within the backlinks to Figma (as you see in the screenshot), then the daily notes page shows up, even though on that page I was only mentioning plugins in the context of Obsidian.
So in Obsidian, I can’t do the same thing I do in Roam daily notes pages where I talk about a dozen separate topics on the same day and page because then I’ll end up with super noisy search results.
So here’s what I’m doing instead, because I still like organizing things by date:
My daily notes page itself is basically blank. Instead, I make many atomic pages and reference the daily notes page for the days that I work on those atomic pages. Each of these pages is searched separately, so I do not end up with the “figma plugin” false positive I described above.
I can use the backlinks for today’s daily note as a navigational tool to jump around the pages that I’m working on today.
One of the problems with this approach, however, is that if you use the double brackets as a form of autocomplete, then you end up with really noisy results there! This is because you create so many pages that each have their own name that if I’m just trying to pull up a specific page I have to sift through a lot of crap.
I’m unlikely to reference any of these page titles, so having to title them is unhelpful for me:
- “What I’m thinking about with GuidedTrack on 2021-03-27”
- “Metamuse podcast with Nikolas Klein”
- “Meeting notes with Brent on 2021-03-27”
I may want to reference the contents of those pages, but unlikely the titles. I want referencing a page name to be meaningful, with something like an evergreen note title or a keyword. This is where the Zettelkasten prefixer core plugin comes in!
Like, look at this note. Maybe I could break this up into atomic notes, but really there’s no overarching idea from this that I want to show up in my page name autocomplete. I just want it to show up in search results / backlinks when I need it. Honestly I don’t even care what the name is, but going with “untitled 1, 2, 3, etc.” just feels wrong. So I just create a new ZK note and write in there, referencing whatever I want to reference (including today’s daily note!) and I know it will show up in my search results or backlinks when I need it.
It’s like, “ah I just want to get something down without thinking about a name” and I can always add a name after.
No guarantees that my system will stay static in this form, I’m still in my early days, but this approach is feeling good.