Curiously Chase

My Heuristic For Notes and Tags In Obsidian

My simple heuristic for deciding if something is a note or a tag.

A lot of people ask me about my Obsidian setup and one of the most often asked questions is: "Do you prefer notes or tags for everything?"

My answer has always been "it depends."

I decided that I'd share my "it depends" heuristic to give others insights into how I think about when to use which one and why (In my example).

The single heuristic I use for if something should be a note or a tag is "is this an abstract or concrete term?"

As an example, let's say I am doing a What Is a Remote Design Sprint? at Murmur Labs and I want to capture an insight for the retrospective, here's how I would go through the process of capturing if both the Sprint and the Retrospective are new concepts in my Personal Knowledge Management System.

Capture the insight as a list item in my daily page. As an example: "- The flow of capturing questions asynchronously was awkward."

This is a list item captured for the concrete sprint about its Retrospective.

This one is tricky, because at first blush, it seems like the retrospective should be concrete, but I only need to capture that it's for a retrospective that is specific to this sprint.

In this case, I would create a note for the Sprint ("Sprint WK12", for example) and tag it with #retro because I want to connect this specific Sprint with any notes about its Retrospective.

Now when I view the specific Sprint note, I can have a view that finds any items across my notes that references the note "Sprint WK12" and has a tag of #retro.


  • Is it a concrete object/event? If it is, it should be a note. Things that satisfy this would be "My House", "A Meeting on Thursday", "Some Specific Sprint", "The Surprising Power of Liberating Structures (Book)"
  • If it's not, it's probably abstract and should be a tag. Things that satisfy this would be "retro", "meeting", "book", "task".

Example of How This Heuristic Helps Me

The reason I find this useful is that I don't usually find myself writing queries for just abstractions of objects/events.

I usually refine a query for a concrete object or event with the abstraction ("Show me all items tagged #retro for this week's sprint.").

An example of the code for this DataView would be:

dv.list(dv.pages().file.lists.where(t => t.text.includes("[[WK13 Sprint]]")).filter(t => t.text.includes("#retro")).map((t ) => t.text))

I could take that even further and use a subtag for #retro, such as #retro/dislike.

This would allow me to organize my #retro notes by "like", "dislike", "change".

If I wanted to see all retro items in some other note, I could use the same DataView JS query without the initial includes for the sprint, then refine it as necessary.

Share on Twitter