From someone that has used Roam Research and countless task/note management apps

For someone who has as much experience as me in the task and note management app arenas, I believe I have finally found the tool that will serve me for many years to come. The tool is calledĀ ObsidianĀ and it touts itself as being āa powerful knowledge base that works on top of a local folder of plain text Markdown files.ā For reference, a Markdown file is a text file that is organized in a standardized way. More info can be foundĀ here. Obsidian allows you to create bidirectional links between your notes. So, instead of having your notes be siloed into different folders and subfolders, you can let your notes be automatically organized based on how they relate to similar topics and points. A lot of people like to use the brain metaphor in that the bidirectional nature resembles how our brains work and how it makes connections with everything that we are thinking and learning about. For reference, here is a screenshot of what my network of notes looked like a few days ago:

Roam Research and Why I Stopped Using It
Before using Obsidian, I had been usingĀ Roam ResearchĀ for about 2 months, starting in April. It calls itself the ānotes tool for networked thoughts.ā Like many others, I was on the hype train and I had it open all day on my computer. It was that good and I understood and supported what Roam Research meant when they replied with the following regarding their planned $15 pricing policy:
Youāre not our target user if Roam is worth less than netflix. - Roam Research (@RoamResearch)Ā May 5, 2020
While using Roam Research, I had heard of Obsidian as being a comparable but limited alternative, but I didnāt try it out until I encountered a hiccup with Roam Researchās service towards the end of June. It kept deleting some text that I was trying to enter and it caused me to stop using the service that day. I had also been seeing people that were reporting data loss issues and that pushed me to give Obsidian a try. When you have someone that has made quite a bit of moneyĀ from a courseĀ on how to properly use Roam Research report data loss, it doesnāt ring very well in the trust and reliability departments, especially if you are paying for the service.
@RoamResearch Roam just froze and deleted everything on a super important page, is there anyway to rollback a page in a database? - Nat Eliason (@nateliason)Ā July 31, 2020
I wouldnāt be surprised if the issues that I and other users encountered are because of the approach that Roam Research took when it came to developing their software. On Twitter, Sam Wight describes why he believes it wasnāt a very good one:
Quick thread on @RoamResearch and why their software approach is not a very good one. - Sam Wight (@samwightt)Ā June 12, 2020
I was actually debating whether I would mention these issues. However, as a fellow software craftsman, this is a call forĀ ConorĀ and his team at Roam Research to do a better job when it comes to offering a reliable service. I shouldnāt need to set up aĀ backup systemĀ myself if Iām paying for the service. With them hittingĀ $1 Million in Annual Recurring RevenueĀ within two months of starting to charge, I think they can take the criticism.
Now, I still wish them success with this endeavor. Iām also looking forward to seeing how much of an impact Roam Research will make in the collective knowledge management and academiaĀ spaces.
My Past History with Task and Note Management Apps
For those interested in the apps that I used for task and note management before Obsidian, here you go: (mostly chronological and from what I can remember/find the name of)
Task management:Ā Reminders (iPhone), Trello, Google Tasks, Wunderlist, Google Keep, Plan, Asana, Things, Notion, Taskful, Planny, Quire, Habitica, Focus Matrix, Coda, Sorted3, Complice, and Roam Research
Note management:Ā Notes (iPhone), Catch, Workflowy, Evernote, Google Keep, Notability, Outlinely, Milanote, Notion, Bear, Slite, and Roam Research
My Experience with Obsidian so Far and a Rebuttal
Regarding Obsidian, I have been enjoying the experience so far. Obviously, I have lost access to a number of features from Roam Research, i.e. filters, queries, block references (every bullet point you write is a block and you can reference all of them), and editable block embeds. However, I have been able to make do and havenāt really missed them. Based on my experience and Obsidianās recent updates, donāt let people like Robert Haisfield get you down with their comments:
If youāre using @obsdmd as though itās @RoamResearch, then you get what you pay for. I use both, and both have their strengths, but Obsidian has page level backlinks and no filtering. As soon as you get more than a few linked refs, their backlinks implementation is burdensome - Robert Haisfield (@RobertHaisfield)Ā July 20, 2020
Not trying to call out Justin, itās just that his tour is a visual example of this broader phenomena. Many Roam users will watch it and think to themselves āsquare peg, round holeā - Robert Haisfield (@RobertHaisfield)Ā July 20, 2020
So, you might be wondering what he is talking about when it comes to linked references and Obsidianās backlinks implementation. In both of the following cases, for each listed reference/mention, you will see the name of the note where the note you are on is referenced and then the context in which it was used.
Letās start with Roam Research:


In the first picture, you will see the linked references that are at the bottom of my š Backlog Tasks note. In the second picture, you will see what happens when I click on the filter button thatās to the upper right. This allows you to filter the listed blocks/references.
Now, letās look at Obsidian:
Note: This is from the most recent Insider build (0.8.4).

This is showing the linked mentions for a goal of mine that was related to setting up a tech-focused online social for my hometown. The great thing about this version is that Obsidian has added the ability to see more of the context around the linked mention. Additionally, they have added the ability to collapse linked/unlinked mention results. They donāt offer the ability to filter mentions at the moment, but it would make sense for them to eventually add it.
The solution thatās better, at the moment, depends on the type of user you are. If you are a full-time researcher or writer, I can see Roamās approach being more valuable, especially if you want to copy all your past work into it and see what type of connections you can discover. If you are someone that blogs on a casual basis, you probably wonāt see the lack of linked reference/mention filtering as a deal-breaker. With my workflow that does treat Obsidian like Roam (to a point), I actually havenāt missed this feature.
However, I do see the benefits of it. So, if I donāt create it, someone else in the community will make a more extensive backlinks plugin that supports filtering when ObsidianāsĀ plugin APIĀ is released. And, even if the API doesnāt include whatās needed to do this, Obsidian will be incentivized to add this feature themselves if thereās enough of a demand. Thereās alreadyĀ a post that asks for this featureĀ on their forum.
Why I Believe in Obsidianās Future
Besides what I have stated above, these are the main reasons why Iām flying the Obsidian banner:
Future-Proof:Ā Your notes are future-proof since they use Markdown and not some type of proprietary format.
Portability:Ā You donāt have to rely on Obsidianās servers in order to access your notes. You can use iCloud, Google Drive, other cloud storage providers, or even roll your own server.
Safe and Private:Ā If you use a cloud storage provide to store your notes, you wonāt have to worry about issues of data loss or your data getting into the wrong hands. I donāt think Iām alone in saying that I trust players like Google and Apple more than smaller players (including the app developers themselves) when it comes to the security of my data.
Extendability:Ā Obsidian uses 19 core plugins to function and thereās more to come. The great thing is that we will be able to install third party plugins and be able to build our own in the future as well. If you keep reading, you will see what type of plugin I have in mind.
Good mobile experience:Ā Obsidian doesnāt have a mobile app yet. However, with me storing my notes in iCloud, I have easy access to my notes usingĀ iA WriterĀ on my iPhone. As a side note, if you also have an iPhone, I strongly recommend that you use iCloud to store your notes. I tried to use Google Drive, but I couldnāt add new notes without manually moving them from the iCloud area in iA Writer to the Google Drive folder that I was using for my notes.
Now, letās get into the real meat of this article.
Goal Management
So, when it comes to managing my goals, I like to break things down. For each of my goals, I break them down into three parts: the overarching goal, the included milestones, and the intentions that are associated with each milestone. Hereās a diagram (created using Obsidian via their support forĀ Mermaid diagrams):

For reference, I got the the term intention fromĀ CompliceĀ and intentions are the main way in which I chip away at a goal. A key part of my system is that I like to specify the itemās type, title, and whether they have been completed in the itemās name. This helps me focus on one item at a time. When it comes to the completion state, I use the āšā character for incomplete items, š§ for in progress items, ā for completed items, and šØ for items where my plans have changed and I need to edit them. I add emojis and a dash in the front of goals and milestones. As a way to make my life easier, I useĀ AlfredāsĀ text expansion feature in order to speed up the creation of note titles and their associated contents. At the end of this article, you will find a link to a starter kit/vault that includes all of these, an Alfred workflow, and a vault that follows the Obsidian workflow that is described in this article.
Note: If the above character for incomplete items looks off, this is what it looks like on an Mac:

This is fromĀ Emojipedia.
Hereās a legend for how I name goals, milestones, intentions, and recurring intentions:Ā
- Goals: ā³ļø - š Title
- Milestones: ā - š Title
- Intentions: š Title
- Recurring Intentions: (date) - š Title
Hereās how each itemās note is structured:
Goals
Associations: [[Goal]]
### Notes
### Milestones
- ex. [[ā - š Milestone A]]
Milestones
Associations: [[Milestone]]
### Notes
### Milestones
- ex. [[š Intention A]]
Intentions
Associations: [[Intention]]
### Clocks
- Estimate:
- Start Time:
- End Time:
### Result (total time and explain if I go over my estimate)
### Notes
- ex. This is also where I place sub-tasks via Markdown check lists, i.e. [ ] Example Task
Note: The āClocksā and āResultā sections will be explained in the next section.
Recurring Intentions
Associations: [[Intention]] [[Base Intention, ex. ā¦ļø Complete five programming problems on HackerRank]]
### Clocks
- Estimate:
- Start Time:
- End Time:
### Result (total time and explain if I go over my estimate)
### Notes
-Ā
Note: As you can see above, I associate the recurring intention with its base intention. I use the diamond to identify base intentions, which donāt have anything in their respective notes.
I have also recently created two notes to keep track of my active goals and goals that are on the back-burner. Hereās their format:
Active Goals:
Due this month
- This week / next week
Ā Ā Ā - ex. [[ā³ļø - š Complete my Obsidian article]]
Ongoing
- ex. [[ā³ļø - š Complete the Version 1 Beta for Project Iota]]
Goal Backlog:
- After doing something
Ā Ā Ā - ex. [[ā³ļø - š Goal Title]]
The great thing about the Active Goals note is that I embed it into all of my daily notes, which serves as a calendar for my goal deadlines. Hereās a a picture of the daily note from yesterday:

Task Management
Nowā¦before I dive a bit deeper into my intentions and how I manage my miscellaneous tasks, let me talk about what I use to guide each of my days.Ā
Daily Notes
I use Obsidianās Daily Notes feature for this purpose and hereās the template that I instruct Obsidian to use:
![[šÆ Active Goals]]
[[Morning Pages (date)]]
TODO
- [ ] Complete my daily Morning Pages activity with tea (at least 25 mins)
- [ ] Finalize today's plans
Other
Hereās a breakdown for each part:
Transclude of šÆ-Active-Goals
- As I mentioned in the previous section, this allows me to have easy access to my upcoming goal deadlines. This is actually a pretty recent addition, but my plan is to update this on a weekly or bi-weekly basis.
- Ā Iām personally a fan of the activity that has been recently trending. It was coined by Julia Cameron in her book calledĀ The Artistās WayĀ that was published in 1992. Hereās how she describes them on herĀ website:
Morning Pages are three pages of longhand, stream of consciousness writing, done first thing in the morning. There is no wrong way to do Morning Pagesāthey are not high art. They are not even āwriting.ā They are about anything and everything that crosses your mindā and they are for your eyes only. Morning Pages provoke, clarify, comfort, cajole, prioritize and synchronize the day at hand. Do not over-think Morning Pages: just put three pages of anything on the pageā¦and then do three more pages tomorrow.
- I did this activity by hand initially. However, if I continued to do that, I wouldnāt be able to easily connect my thoughts with my ever-growing collection of notes. So, I just type them out and do it for at least 25 minutes. Iāll touch on this more in the next section.
TODO
- This is where my daily, recurring tasks live, in addition to where I reference any milestones, intentions, and miscellaneous tasks that I have planned for that day.
Other
- I usually use this area to jot down any miscellaneous notes that I have throughout the day.
Tags
I do use Obsidianās tags feature. My system only uses two and they are related to showing the progress that I have made with intentions, milestones, intentions, and misc tasks that I have assigned myself on a given day through the dayās daily note. Here they are and they are pretty self-explanatory:
# made-progressĀ
# did-not-get-toĀ
Intentions (Continued)
As you saw in the previous section, this is what the template for my intentions looks like:
Associations: [[Intention]]
### Clocks
- Estimate:
- Start Time:
- End Time:
### Result (total time and explain if I go over my estimate)
### Notes
-Ā
The Clocks and Result sections pertain to the software development work that I do. When I got my first contract software development job in 2018, I found it difficult to provide good estimates. It didnāt help that I was new to React and React Native. But man, university wasnāt kidding when they said that a lot of software development projects go over budget and arenāt delivered on time. So, based on my negative experiences in this arena in 2018, I came up with this system in the middle of this year in order to help me create estimates for future work that I do. I specify the estimate and then record the start time using an Alfred text expansion, i.e. ā/time.ā I personally like to work in 50 minute allotments with 10 minute breaks. So, I also record when a break starts and when I start work again using that aforementioned text expansion. When I complete the task, I record the time on the āEnd Time: ā line and then add up the total amount of time and quickly jot down why my estimate went over time if I went over my estimate. I put the total time next to a Total Time note reference. Hereās an excerpt of a development task that I completed in June:
Intention Title: ā Be able to filter items that are favorited
Clocks
- Estimate: 45 mins
Ā Ā Ā - add a new item that will be the test item - 5 mins
Ā Ā Ā - add the isFavorited property to it and all the other items on the backend (set it to true for the test item) - 10 mins
Ā Ā Ā - get the filtering to work since this does not involve the modal at all - 30 mins
- Start Time: 9:29 PM
- End Time: 10:00 PM (31 mins)
Result (total time and explain if I go over my estimate)
- [[Total Time]]: 31 mins
If I went over my estimate, I usually put the following after the Total Time reference:
Why?
- explain why I went over my estimate
By doing this consistently, I get access to the following result:

I then enter this information into anĀ Airtable tableĀ and add tags that are associated with the type of work that I was doing for each milestone or intention. For this last step, I try to do it once a week on the weekend. By doing this, I can create an average of the logged amount of hours of similar types of work and that will help me create estimates for work that I do in the future. So far, I have been enjoying this approach and wish I had it in 2018. I canāt wait for Obsidian to give us access to the Public Plugin API. Iām planning on creating a plugin that will allow me to automate this process and not have to use Airtable anymore so I can keep everything inside of Obsidian.
Miscellaneous Tasks
As for my miscellaneous tasks, I extend my item naming convention to support these types of tasks as well. Hereās how I format their title and contents:Ā
Miscellaneous Tasks: Misc - š Title
Associations: [[Misc Task]] [[Type of Misc Task (ex. Family)]]
### Notes
-Ā
Recurring Miscellaneous Tasks: (Date) Misc - š Title
Associations: [[Misc Task]] [[Type of Misc Task]] [[Base Recurring Task, ex. ā¦ļø Go Grocery Shopping]]
### Notes
-Ā
I use Obsidianās saved search query feature in order to easily list the different types of miscellaneous tasks that I have assigned myself. Here are two examples of what you can expect:
Hereās a list of saved notes and search queries:

Hereās one of the search queries in action:

Note Management
As for how I manage my notes, Iāll break this up into four categories:
- Morning Pages (Continued)
- Evergreen Notes
- Resource Notes
- Miscellaneous and Knowledge Base Notes
Morning Pages (Continued)
So, letās continue where we left off in regards to this topic. This is the template that I use for each of my Morning Pages:
Association: [[Morning Pages]]
Associated Comments/Pages
-
Under the associated comments/pages area, I use the following strategy:
New ideas or notes:Ā I create a new note and then add my thoughts to the new note that was created.
Thoughts related to past ideas/notes:Ā I reference the associated note and enter my notes beside it.
Hereās an example:
Association: [[Morning Pages]]
Associated Comments/Pages
- [[This is a new note]]
- [[This is a past idea or note]] I think I should go about this in a different way. Let's...
Evergreen Notes
I have recently stumbled onto the trend of creating evergreen notes.Ā Andy MatuschakĀ coined the term and he describes it like so:
Evergreen notes are written and organized to evolve, contribute, and accumulate over time, across projects.
He then goes on to provide the following principles on how to go about writing these types of notes:
- They should be atomic, i.e. about one thing and entirely about that one thing.
- They should be concept-oriented.
- They should be densely-linked.
- You should let these notes organize themselves organically instead of starting with a strict hierarchy in the beginning.
InĀ Maggie AppletonāsĀ words, they are āa way to build up a personal library of clear opinions, beliefs and original thoughts.ā In her workflow, she actually added a state to her evergreen notes, i.e. seedling ā budding ā Evergreen. She offered some more information about this approach in the following tweet and in additional replies to this tweet:
Yeah still early days and all experimental. But number of seedling potentially infinite. Itās just a pile of potentials. Some may never grow to evergreens if they donāt need to. Ā Ā Not too worried about time to maturity either. Am finding I develop them as and when needed. - Maggie Appleton (@Mappletons)Ā June 10, 2020
You can check out her digital garden of Evergreen notesĀ here. Iām personally a fan of this approach and added it to my workflow when Iām working with Evergreen notes, as you can see here:
State:
Associations:
### Notes
-Ā
You can learn more about Evergreen notes and what the aforementioned principles mean by visiting thisĀ pageĀ on Andyās website. Additionally, if you want to see some great illustrations that help to explain the concept even further, you should check out theĀ onesĀ that were created by Maggie.
Resource Notes
When it comes to writing up notes on items like books, presentations, and articles, I use the following template:
### Metadata
- Associations: [[Resource]] [[Resource Type, ex. Book]]
- Author:
- Link:
### Notes
-Ā
Miscellaneous and Knowledge Base Notes
As for miscellaneous and knowledge base notes, this is the template that I use:
Associations:
### Notes
-Ā
Software Development Knowledge Base
The main reason why I started to try out knowledge base apps was because I wanted to build a software development knowledge base. I wanted to be able to easily documents things that I learned while doing my development work and reference them in the future. Additionally, it would be nice if I could store code that I wanted to save for later reference. For instance, I may want to save an approach that I used for one project so I wouldnāt have to start from scratch in the future if I was working on something similar.
Saving Development Knowledge
In combination with Alfred and Obsidianās header reference feature, I was able to build something that fits the bill for this scenario.
When I want to save some knowledge for later reference, I add it to the bottom of an intention. In this case, Iām saving some notes about a notable package that can be used with Javascript and other languages, called cuid.
#### cuid
- CUID (Collision Resistant IDs)
- Package that you gives you near unique IDs (a duplicate ID will be returned very rarely)
For each āheader note,ā I put where I want its reference to go by adding a list of destinations after all of these notes:
Note: The order needs to be consistent.
#### cuid
- CUID (Collision Resistant IDs)
- Package that you gives you near unique IDs (a duplicate ID will be returned very rarely)
#### Another header note
- You can also include code.
#### Destinations
- [[React - Notable Packages]]
- [[Destination where the reference for the second note should go]]
When I complete the intention, I add āReady to be Recordedā to the bottom of the note.
I then run an Alfred workflow that runs a Python script that gets all of the files that were modified within three days that contain the words āReady to be Recordedā and automatically appends each reference to the end of the notes that you marked as each header notes destination. In the above case, hereās me about to run the workflow and the final result (edit and preview modes):



Saving Code
The nice thing about Obsidian is that it allows you to easily write code blocks. It supports syntax highlighting and you can use the one associated with a given language by putting the language (written out or abbreviated) after the first backticks.
``` js
function helloWorld() {
Ā Ā Ā console.log("Hello World!")
}
```
I use the following template when Iām saving code to its own note:
Associations:
### Notes
-
### Code
``` js
```
Closing
And, with that, thatās how I use Obsidian to manage my goals, tasks, notes, and software development knowledge base. Iām happy that I wrote this article as it has allowed me to refine and extend my system in various ways, such as ensuring that Iām not using folders for anything other than attachments and adding recurring intentions/miscellaneous tasks.
You can download a starter kit that I put together that follows this systemĀ on GitHub. As a side note, I actually used Obsidian to write this article in a vault dedicated to writing articles. I mainly did this because I like being able to have total control over the version history with Git.
I hope you found this article helpful. If you did, I would greatly appreciate it if you liked the article by clicking on the heart icon on the left hand side. And, if you wanted to go even further, feel free to buy me a coffeeĀ via Ko-fi.
Lastly, if you have any questions, feel free to ask them.
Till next time~