Organizing Your Notes on Obsidian
I use a note-taking app at work called Obsidian, but only recently did I get around to learning how to use more of its functionality.
For the uninitiated, Obsidian is a note-taking app that uses markdown, which is a markup language that’s simple to learn and readable.1 The advantage of a markup language is that it makes your formatting explicit in what you write. If you’ve ever struggled with manually adjusting unexpected indentations, spacings, etc. on Microsoft Word through a maze of drop-down menus and pop-up windows, that’s the kind of situation where a markup language would be helpful. On the other hand, the downside of a markup language is that it makes your formatting more restrictive. For example, in Microsoft OneNote, you can create multiple cells of text anywhere on the page; this would be prohibitively difficult to do in markdown. There’s more to be said about why markdown is popular, but I’ll leave it here for the sake of brevity.
What I want to talk about in this post instead is how to organize your notes on Obsidian. This has become an increasingly pressing issue for me as I’ve accumulated more and more notes.
Using Backlinks to Organize Notes
First, let’s talk about backlinks and why they are an incredible way to organize your notes. In Obsidian, there are actually three different ways you can organize your notes:2
- Folders - This is the organizational structure we are all familiar with. It imposes a top-down hierarchical structure. It is also the least flexible way to organize your notes because every note can only be located in one folder.
- Tags - This is also a structure many of us are already familiar with due to its popularity on social media platforms and other apps. Tags are more flexible than folders because you can link one note to multiple tags. So for example, if you have a meeting with Bob discussing Project A and Project B, you can tag the meeting note with the tags
#bob
,#project-a
,#project-b
. Now you can find this note under any of those tags. You can also create nested tags like#meeting/bob
. - Backlinks - This is the most flexible organizational structure. The way to think about backlinks (denoted as
[[link]]
in markdown) is that every “tag” is now a note. This kind of note is called a map of content (MOC) note. For instance, instead of using tags, you can link your meeting note to[[Bob]]
,[[Project A]]
,[[Project B]]
. When you click on the link for[[Project A]]
, you will go to a note entitled “Project A.” This “Project A” MOC note can display a list of notes that have been linked to it (i.e. backlinks), thus acting like a tag. But because “Project A” is also a note, you can write anything else related to Project A on the note itself, such as what is the roadmap for the project, who are the stakeholders, etc. Moreover, the “Project A” note can also link to other notes. For example, you might want to link it to the notes[[Finance team]]
and[[Forecasting team]]
to “tag” the teams that are involved with the project. Now if you go to the “Finance team” note, you can also view a list of the projects linked to that team. This kind of flexible graph structure isn’t possible with folders or tags, but it’s part of what makes backlinks so powerful.
You can use all three ways – folders, tags, and backlinks – simultaneously to organize your notes. But because backlinks have much richer functionality, I recommend using them as the primary way to organize your Obsidian notes. Previously, I was relying on folders (and to a lesser extent, tags), but I’ve now added a web of backlinks to organize my work notes. To decide between when to use backlinks versus tags, I generally use backlinks for anything that’s about the content of the note (e.g. What is the project, topic, or theme? Who were the people involved?) and tags for anything about the context of the note (e.g. Was it a meeting, a personal note, a how-to guide?).3 Another way to think about it is to consider your repository of notes like a wiki. Similar to Wikipedia, you want to use backlinks for anything you might want to create a MOC note (or wiki page, in this analogy) for.
To make full use of backlinks, I highly recommend two Obsidian plugins: Dataview and Templater.
Dataview (github) is an essential plugin for displaying backlinks in your map of content (MOC) notes.4 Dataview lets you query notes using a SQL-like language (called “DQL”) and display them in nice tables. Below is an example from their README, where they display all the notes from the “games” folder, along with some metadata for each note (Time Played, Length, and Rating).
If you wanted to display all the backlinked notes instead, simply use from [[]]
instead of from "games"
in the code above. This will show all the notes that have linked to the MOC note you are on. You can even combine the logic to only display backlinks from the “games” folder, i.e. from "games" and [[]]
.
Now let’s imagine that you have a MOC note for a project, “Project A.” Using a Dataview table like the example above, you can display all the meeting notes linked to Project A, along with additional metadata, like when the note was created (file.cday
) or other fields you may have created in the note’s YAML frontmatter (more on this in the next section). In comparison to a traditional folder or tag organizational structure, where you would only be able to see the file name under each folder or tag, using Dataview tables to display backlinks allows you to see more information for each note and scan them more efficiently.5
Templater (github) is the other Obsidian plugin I recommend. This plugin allows you to create templates for your notes. Specifically for our use case, it makes creating YAML metadata for your notes a more streamlined process. Adding metadata to your notes is useful because each field in your YAML can later be queried in a Dataview table. For example, below is a simple template you might create for a meeting note.
---
projects:
- "[[Project 1]]"
- "[[Project 2]]"
people:
- "[[Bob]]"
- "[[Jane]]"
- "[[Alex]]"
date: <% tp.date.now('') %>
summary: "Discuss roadmap for 2024"
---
# Meeting Minutes
# To-do
- [ ]
This template has a YAML frontmatter section (the section enclosed above and below by the three dashes ---
), with metadata fields for projects
(What project was the meeting about?), people
(Who attended the meeting?), date
(generated automatically for today’s date with <% tp.date.now('') %>
), and a brief summary
. Each of these fields can be displayed as a column in a Dataview table. In addition to the metadata, this template provides a “Meeting Minutes” section and a “To-do” list. There’s a lot more you can do with Templater and I recommend looking up more examples if you’re interested in more complex features.
By combining Dataview and Templater, you can use backlinks to effectively organize all your existing and future notes on Obsidian.
As I mentioned earlier, I was primarily using folders before to organize my notes. But as the number of notes have grown in the last year, my note retrieval process using folders has become less and less efficient.
For example, let’s say I wanted to find the note for a meeting I had with Bob about Project A that happened sometime around 1 month to 3 months ago. With my previous folder-based organization, I basically had to go to my folder for Project A and manually click on each note (each of which I’ve entitled with the date) within the approximate date range until I found it. Now that I have backlinks, I can go to my “Project A” MOC note, look at the Dataview table for all my meeting notes and not only see the notes displayed in chronological order, but also see which notes were “tagged” with attendee [[Bob]]
. I can also hop back and forth between each individual meeting note and the “Project A” MOC note since they are linked to each other in both directions. Alternatively, instead of using the “Project A” MOC note to find the meeting in question, I can also go to my “Bob” MOC note and see which meetings I had with him that discussed [[Project A]]
.
A nifty tip with using backlinks in Obsidian is that if you rename the “Project A” MOC note, all your backlinks in your notes also get automatically updated with the new name, so you don’t have to comb through all the notes and manually change the link. Another bonus with using backlinks is that you can view the structure of your notes with Obsidian’s graph view, which displays all your notes as nodes and the links between them as edges. In practice, I’ve found the graph to be cool to look at, but mostly useless so far.6
PARA Method for Folders
Because I had an already existing folder structure for my notes, I didn’t completely abandon my folders. However, I did update my folders’ organizational structure using the PARA method. The PARA method says that every file can be classified into one of 4 categories: 1) Projects, 2) Areas, 3) Resources, or 4) Archive. Projects are for active projects (i.e. things that have a definite timeline). Areas are ongoing responsibilities (e.g. hiring, professional development tasks). Resources are evergreen notes (e.g. guides or notes on topics you’re learning). Archive is anything in the previous three folders that’s no longer active, but that you might want keep around as a reference. This concept is explained in more detail in this blog post. Using this method simplified my top level of folders and also provided more of a mental model for how the folder system should work.
Johnny Decimal for Naming
Lastly, I’m experimenting with the Johnny Decimal system to name and organize my folders. For me, the main advantage comes from the fact that on Obsidian, the folders and notes are organized alphabetically, so using numbers to begin each folder name allows me to specify the order of my folders. And having a system to decide how to number the folders is helpful for internal consistency. I don’t intend to strictly follow the system, since I’m no longer reliant on folders as the primary organizational structure for my notes. However, I’d like to mull over the whole organizational philosophy behind the Johnny Decimal system a bit more, as it may apply to other organizational needs in my life.
It’s widely used in many contexts. Git repo README files are written in markdown. R Markdown, as the name indicates, is written in markdown. This blog post, using the blogdown R package, was also written in markdown.↩︎
This concept was best explained to me in this reddit comment. Shout out to u/i_hate_shitposting.↩︎
This structure was inspired by another helpful redditor.↩︎
Obsidian does let you display backlinks for a note natively, but Dataview is much more powerful, as it lets you customize how you want to display them.↩︎
We could also use Dataview tables to display notes from a folder or a tag, but backlinks are still the more flexible and streamlined way to “tag” your notes.↩︎
If there’s a good use case for it, however, I would love to know.↩︎