Since August last year, Roam Research has been the only note-taking software I use. After using Roam Research, I have developed a comfortable knowledge and task management system and have used Roam Research to produce several articles and manage my daily work. I have found that using this system has made both task management and knowledge research extremely efficient and gradually more interesting.
Unfortunately, I have searched online and found that there are no high-quality articles explaining the use of Roam Research in the community, possibly because it has a high barrier to entry in China (web version only + requires VPN + expensive subscription price), which makes it unpopular in China.
This article will introduce my own use cases and experiences with Roam Research, hoping to inspire everyone. It is important to note that the tool is just a tool, and what matters is the method and behavior pattern of its use. Therefore, whether readers use Roam Research or not is not important. The key is how to incorporate this system into their own toolkit. Therefore, although this article is titled "Roam Research Best Practices," it mainly introduces knowledge and task management methods using Roam Research, and even in some steps, I will also introduce some alternative tools.
Let's get started!
1. Knowledge Management#
1.1 Formation of New Knowledge: Connecting New and Old Knowledge#
The essence of learning is to create new nodes, or more precisely, to create new connections. For example, consider the following sentence:
Flutter is a high-performance cross-platform front-end development framework because it provides a self-painting engine to smooth out cross-platform differences and provides high-performance channels for cross-platform communication.
If you are not a front-end developer, have no knowledge of Flutter, do not understand the principles of self-painting engines, are unclear about cross-platform development, do not know what channels are, and do not know what technology is being compared in this sentence, or even do not know what the "high-performance" metric refers to, then the above sentence is meaningless to you—even though you recognize every word, it does not constitute new knowledge for you.
Therefore, the core of learning is to find and establish connections between new nodes and old knowledge. This is also the key point of the Feynman learning method—to be able to explain new knowledge using one's own knowledge system. This is the complete understanding of new knowledge. If the existing knowledge system cannot fully explain the new knowledge, adjustments need to be made to the knowledge framework. This is the process of learning and growth.
1.2 Hooks between Knowledge: Tags#
One way to easily associate new and old knowledge is to add a common "third element" to both—tags. Almost all note-taking software has the basic ability to use tags. The introduction of tags not only organizes knowledge but also indirectly connects all knowledge within the tags.
In addition, tags break the traditional tree structure of file directories. Knowledge itself should be a network, not a tree structure of either/or.
Roam Research is highly abstract and flexible. It only has two concepts: Page and Block—a Page can be part of another Page as a block, and a part of a Block can also become a Page at any time. In addition, they can cross-reference each other, making it very flexible.
As shown in the above image, the Page is the entire "Spinoza" page, and all the content inside the page (starting with a dot) is a Block.
Flexibility means that there is no pressure in using it, but it can also confuse users. For example, as we mentioned earlier, Roam Research does not have tags. However, as long as a Page or Block is prefixed with "#", it becomes a tag. We can create a Page titled "Tags" and collect all our tags there. This also aligns with our understanding—because tags themselves are a form of knowledge.
The above image shows the tags I currently use. Clicking on the "Philosophy" Page, you can see many well-organized pages inside it, organized according to a certain structure. "Empiricism" and "Rationalism" are also referenced, so you can see that these two have special markings. (The role and benefits of references will be discussed in detail in the "Knowledge Output" section later, not detailed here)
1.3 How to Take Reading Notes?#
So far, the content we have introduced does not demonstrate the advantages of Roam Research, including the upcoming section on "how to take reading notes," which is actually not directly related to Roam Research because reading methods are universal and can be chosen by individuals (although Roam Research has some conveniences).
Returning to the topic, how to take reading notes is a perennial topic, but I think many notes are made according to the chapter directory of the book—what is covered in Chapter 1, or even what is covered in a specific paragraph, is faithfully recorded. This is not wrong, but for the purpose of "learning," it can be somewhat inefficient—because these notes record the author's thoughts, and what you understand is only what the author wants you to see. Have you truly understood it? Can you integrate this content into your own knowledge system? These are questions that need to be asked. If the answer is negative, then the purpose of learning has not been achieved.
First, reading should be done with questions in mind—What do I already know? What do I not know? What do I want to know? Reading with these questions in mind will be more efficient because question-driven learning makes us more sensitive to the information we absorb from reading. It is an active learning state, and its efficiency is always greater than passive learning. Without questions in mind while reading, it is difficult to remember things because there is no differentiation between subject and background.
For example, "The Story" is known as the screenwriter's bible and is a thick book. I will read it first, and if I want to learn about "character arcs," I will delve into it with this purpose.
Another example is "Effective Objective-C," which introduces programming techniques for Objective-C. I will reflect on whether there are any coding deficiencies based on the project I am currently working on while reading.
Second, the information obtained needs to be processed and not simply copied verbatim—because notes should be a distillation and condensation of knowledge. Only processed information can be integrated into one's own knowledge system and become new knowledge that one can grasp. Repeated processing and distillation is also emphasized in the Cornell note-taking method.
Finally, we need to use the knowledge we have learned. After learning new knowledge, it becomes old knowledge. When we encounter new knowledge in the future, we can take it out and process it again. This way, we can continuously strengthen our understanding, continuously optimize, restructure, and expand our knowledge framework, and enrich our knowledge reserves.
For example, if you want to learn about "epistemology," you can read philosophy books with this question in mind and then list several key questions and answer them yourself.
In the process of answering, we will expand our learning of "empiricism" and "rationalism," and the answers to certain questions in "epistemology" will also reference the concepts of "empiricism" and "rationalism." At this point, we can directly embed the answers, forming a simple knowledge network.
At the same time, we can also see that the bottom of the image will automatically link to the content of "Spinoza." This is automatically linked by Roam Research and is helpful for our research and knowledge output. We will discuss the soul of Roam Research—bidirectional links—in detail in the knowledge output section.
Before that, let's take a look at the use of tags in the notes.
1.4 Use of Tags#
Roam Research naturally supports Markdown syntax and allows custom CSS and interesting JavaScript plugins.
Here are a few Markdown tags and their use cases:
- Heading 1: Article titles or titles of knowledge cards.
- Heading 2: A separate Block, should be a noun or noun phrase for easy referencing. If it is a concept with a fine enough granularity, it should also be a separate Block for easy referencing.
- Bold: Important content in paragraphs is marked in green bold.
- Highlighter: Used less frequently, highlights key concepts.
- Italics: Since I personally do not use italics, I have changed the style of italics to red to mark questions.
- TODO: Marks content that needs to be supplemented later.
Roam Research supports templates. Here, I have created a note framework using a template and recorded some notes, as shown in the image below:
In addition, Roam Research provides a Daily section where temporary knowledge content can be directly recorded and later organized. As shown in the image below, this is a temporary note for a day, and the content that needs to be organized is marked with TODO, making it easy to manage tasks later (task management will be discussed in more detail in a later section).
1.5 Knowledge Output#
All our learning notes are actually for the purpose of output. Output does not necessarily mean forming complete articles; capturing stage inspirations or internalizing them as unique gains is also possible. At this stage, Roam Research's automatic block-level bidirectional linking plays a crucial role.
As mentioned in 1.1, the essence of learning is to establish connections between new and old knowledge. Specifically, this is due to the characteristics of neurons:
- Activation in sequence establishes connections: For example, if we have A first and then B, mentally reciting A and then B establishes a connection between AB.
- Bidirectional activation strengthens connections: Based on the previous connection, mentally reciting B and then A strengthens the connection. Recognizing that AB can appear together reinforces the connection.
- Interference from a third element weakens the original connection: However, because a new node is introduced, the knowledge network expands, and the cognitive perspective becomes broader.
As long as references are used in Roam Research, it will automatically establish bidirectional links. When these links become rich, we can discover hidden relationships between more knowledge.
As shown in the image below, this is a partial network in my note map. When I click on "Design," the Pages associated with it will be highlighted. We can see that "Hook Model" and "Psychology" are also related. When we delve into the interdisciplinary field of "design psychology," discovering these hidden links becomes very important. This is an additional benefit of using tags in Roam Research—to establish hidden connections between knowledge by adding hooks.
After discovering relationships, how do we delve deeper into a specific knowledge? For example, I want to delve deeper into "Kant." As long as I create a Page for "Kant," Roam Research will display all strong and weak links related to "Kant" below this Page. This helps us establish the specific position of "Kant" in our knowledge framework.
As shown in the image above, it links to books I have read in the past—such as "Existentialism," "Existentialism as Humanism," and "Enlightenment Now"; articles I have written, such as "What is Life"; tags I have added in my notes, and so on. All of them are associated with "Kant." Among them, the added tags are strong links. We can click on the reference count to see the specific original text being referenced:
It can be said that I haven't done any extra work, and Roam Research has generated the new knowledge of "Kant" based on my existing knowledge. Afterwards, we need to integrate and process the generated knowledge, record it in the Page, and thus expand our knowledge content, deepen our understanding and mastery of "Kant." In future learning, if we have new insights and understanding of Kant, we can also modify this Page repeatedly, maintain it for a long time, and increase the breadth and depth of knowledge.
2. Task Management#
In the second chapter, let's look at how to do task management in Roam Research. Although Roam Research's main capability is knowledge management, its flexibility allows it to be used for task management as well.
2.1 Daily Tasks and Review#
As mentioned earlier, Roam Research provides a Daily view for automatically creating daily notes. Similarly, we can mark any TODO Block with a date, and on the corresponding date, we can see our past plans for that day.
For daily tasks, we can directly reference them from other projects, so we can manage projects based on our schedule without disassembling the integrity of the project flow.
Under each task, we can record the implementation plan and encountered problems. This way, the sedimented Daily content can be directly reviewed.
2.2 Filtering Tasks#
Roam Research also provides Query scripts for filtering tasks. For example, we can write a Query script to filter out all unresolved issues in a project repository.
For tasks in a project, we can directly use templates to manage tasks and issues in the code repository.
2.3 Long-term Planning#
For long-term planning, we can also create a Page to manage it. For example, this is my "Reading" Page, which records the books I have read. Clicking on the corresponding book will show the corresponding notes.
2.4 Alternative Solutions#
The core of task management is "task-planning-review." There are many alternative solutions to this process. Here, I recommend NotePlan 3, which is also a daily note-taking app that allows you to create project pages and manage projects in daily schedules.
Of course, OmniFocus, iOS Reminders, and even pen and paper can all achieve efficient task management as long as the method is correct.
For knowledge management, if Roam Research is not available, Obsidian, Notion, and Craft are also good free alternatives. Finally, tools are just tools. I hope the reading and knowledge association methods mentioned in this article can help everyone with their knowledge management.