Home / How I use Roam Research edit
Try Documentalist, my app that offers fast, offline access to 190+ programmer API docs.

I take lots of notes and I'm always looking for that perfect note taking app.
Because I take a lot of notes, mobile-first note taking apps (e.g. Google's Keep) are of no interest to me. To me most important thing is lowest possible friction in adding new notes and finding existing notes. In theory I could use Google Docs as a note taking app but both Notion and Roam Research make it much faster to jot a new note or find a note I wrote in the past.
Over the years I've cycled through many note taking systems: a single big text file, collection of markdown files in a git repository, a hosted wiki, a self-hosted wiki, Evernote, my own note taking web app.
A combination of Notion and Roam Research is, I hope, the end of the road and will be good enough for the rest of my life.
This article describes how I use Roam Research.

Roam use cases

Here are my main use cases of Roam:
  • taking notes / writing
  • keeping a log of activity (what I did)
  • managing todo list
  • managing projects
  • bookmarking
Roam can be hard to grasp at first. Things you need to know:
  • Roam is a collection of named pages
  • you can trivially link between pages. Writing [[foo]] or #foo anywhere creates a link to a page named foo. A page also lists backlinks (i.e. pages linking to this page) at the end
  • there's automatically a page for every day and the default view is a page for current day
Knowing that, let's go through my use cases.

Taking notes / writing

Let's say I have an idea to write an article about my use of Roam Research (i.e. this very article).
In most other note taking apps I would first have to think about where to put that note.
In Roam I just start writing in the page for current day and tag it with #draft.
Later on I can go to a draft page and see all the drafts I'm currently working on.
There is a greater point here: Roam is "write now, organize later" system.
When I have a though, I jot it down in today's page and tag it with keywords that will help me find it later.
It's the least amount of friction between having a thought and recording that thought for the future.
Taxonomy is personal. I use #draft for my draft articles, but you could just as well use #article or #articles (using singular vs. plural for tags is surprising hard to decide).

Logging of activity

In personal life logging of activity is just for curiosity.
I write down what I did in a page for current day and tag log entries with #done.
I visit done page to review what I did in the past.
What if I want to track what I did on a specific project, e.g. SumatraPDF?
I further tag the entry with a tag for the project e.g. #sumatrapdf. Roam has filtering capabilities that allows me to see entries tagged with #done AND #sumatrapdf.
In professional life logging your work could help you level up. If no-one knows what you did, did it happen? Will it lead to a promotion?
Roam is perfect for logging what you did so that you can review it later and send a summary to your manager or consulting client.
If I were a Google software engineer, I would tag my entries with #done and #work.
If I was doing a consulting job I would tag them as #done, #consulting and maybe with a tag specific to the project or the client.
Again, taxonomy is personal. You can use other tags if they make more sense to you.

Managing projects

I work on several software projects at the same time.
I have a page per project that serves as a hub of information related to the project.
On that page I have:
  • most important links (e.g. to github repository, Digital Ocean dashboard for deployed project etc.)
  • list of things to do next
  • list of ideas for future improvements
  • links to competing products
  • technical overviews. Memory is always fading so it pays to jot down things that might help you remember key information
  • documentation

Todo list

I don't use dedicated todo list applications. I think that creating hundreds of todo items is overwhelming and counter-prodcutive.
I do believe in one of the tenets of Getting Things Done system: writing down your ideas and todo tasks to get them out of your head but be able to review them in the feature.
I maintain a "maybe do list" instead of "todo list".
For example, if I have an idea for SumatraPDF, I jot it down in Roam and tag it with #sumatrapdf. I can then review those ideas in the future when I have time to work on SumatraPDF.
I do maintain a very short (few items) todo list for near future. Mostly today and tomorrow.
This is an anti-procrastination device.
I find that when I start working on a task, I manage to finish it.
Procrastination is what keeps me from even starting.
Having a list of things to do in the morning helps me start working (as opposed to starting to browse Twitter).
It's worth mentioning that other people do use Roam as a sophisticated todo list. Roam is flexible enough. For example Roam understands dates so you can have pages with tags that record a completion date for a task and you can use Roam's powerful query syntax to find tasks that are supposed to be done in the next week.


Bookmark managers in browsers are not good at managing large list of bookmarks. Hierarchies don't scale.
Roam's easy tagging makes it a replacement for services like pinboard.in (and once-famous-now-defunct del.icio.us). Found a page about Docker you want to bookmark for later? Drop the link in Roam and tag it with #docker. Find it later in the docker page.
There is a use case for browser's bookmarks: a fast way to get to most frequently used websites. I'm experimenting with using Roam for that as well.
I've created page bookmarks with most frequently used links. Opening a Roam page from scratch is relatively slow so I keep that page open at all times and as a pinned tab (a Chrome thing).

One more thing...

Actually, lots of things.
I'm relatively light user of Roam. I'm still discovering new use cases for Roam and better ways of managing notes.
But even just the basics usage of jotting things down and tagging them for cross-referencing is very useful. Speed and flexibility are important and Roam has both.
Roam can offer much more if you're willing to invest time. Powerful search queries, tags with values, storing files. There's a reason people become obsessed with Roam.
I'm not obsessed but I do appreciate a great tool.

Notion and Roam?

Why use both Notion and Roam? Why not stick with just one of them?
Notion has some use cases that Roam Research doesn't support well. For example sharing a subset of notes with other people.
They also have different philosophies of managing notes.
Notion is strongly hierarchical. Pages are nested within pages. It's great when hierarchy is obvious but sometimes I spend brain cycles figuring out where in the hierarchy should a new page go.
Roam is a flat collection of interlinked pages. It's more difficult to grasp but removes the thinking. Write things down, tag them now and maybe organize later.
Roam is more quirky. While Notion has more polished UI, Roam is often faster to use. Trying to change a link destination in Notion can be a struggle.

Final thoughts

We live in a golden era of note taking apps. I wish I had Notion or Roam Research 10 years ago.
Notion opened floodgates of high quality note taking apps. Before Notion there was just Evernote. After Notion we got lots of other options, including Roam.
I think they are both powerful enough to serve as a note taking system for life.

Feedback about page:

Optional: your email if you want me to get back to you:

Share on        

Need fast, offline access to 190+ programmer API docs? Try my app Documentalist for Windows