Org-roam is not for me
For a while, I have been using Org-roam, a Zettelkasten-like tool for Emacs. The main idea of Zettelkasten tools is to create a database of notes that are linked in ways that resemble how our brains work. Perhaps that is not exactly true, but at the very least, there is an idea that the Zettelkasten is a very intuitive tool that reflects how we build webs of interconnected ideas and traverse through them.
Backlinks are an important concept for Roam things. They are the links made in other files that point to the one you are currently in. In Org-roam, backlinks are listed on a toggleable sidebar. I don't know why I should care about backlinks.
Most of the time, the only reason I link stuff is that it feels like this is how you Roam. Linking in Roam does not feel human because you have to do it in the opposite direction from how you normally would.
I can't just make a list of things, no, no no! That is too simple. My grandma would understand that. Come on! In Org-roam, the correct way is to add a file or a node for every single item in that list and then link from the item to its category --- and when I am in the node for the category, I can toggle the backlinks sidebar and BOOM! There's my list!
Suffice it to say, I never got the Roam effect, even with a tool like Obsidian, which I used for a while. Looking at their super pretty graph showing how my notes form a semantic web or whatever, does nothing to me. It does not produce any magical insight, nor am I astounded by the unusual connections. The graphs are far removed from the experience of creating notes and looking for stuff.
Perhaps modern Emacs is the biggest enemy of Roam. Searching for stuff is way too easy for me to care about the interconnectedness of it all. That will be true for anyone using Emacs with packages like Ivy, Helm, Vertico, and many others. I use Doom Emacs, which ships with Vertico, but there are many ways to achieve the same results. It is not exactly easy to distinguish between Doom's handles and the packages it is based on, but I do know that every single one of these features is available to every Emacs user in one way or another.
Org-roam's org-roam-node-find
is certainly helpful for finding nodes or files, but it's a little heavy if you're on a slow machine (and I have a laptop where Org-roam is sluggish). More useful than any Org-roam command is +default/search-project
. It searches the current project or directory for strings. I think it uses rg
, ag
, or something super fast like that. It is instant and looks inside the files. That command puts me right where I need to be 100% of the time. With that at my disposal, why would I ever use backlinks? Just for the delight of going through those beautiful connections, which reflect the interdependence of my thoughts?
I'm not even sure my brain really works like that. I think it is more like "I want X. I don't wanna stop to smell the roses, the path is not the destination. The destination is the destination. Get me there. NOW."
Are there contexts in which Roam and Org-roam may be worthy tools? I think so. But I am not someone with needs and habits that require such a tool. A Roam-like thing may be good for researchers outside the humanities. STEM people seem to have a natural need for a high volume of short notes, and that volume alone might produce some magic. In the arts and humanities, it is often necessary for our notes to be longer, sometimes like mini-reviews or outlines for essays. There are also fewer notes, reducing the utility of a tool meant to maximize links between them. As an artist, I don't really need a graph to show me how Quentin Tarantino connects to Martin Scorsese. The complexity is in the details. The lack of a graph showing me those kinds of connections is not what prevents me from achieving an artistic goal. Sure, if I am writing a specific story, it is useful to have four or five files with different kinds of research, character bios, etc. But even in that case, it's not that many files, and if I link them together, that will only highlight obvious relationships. "Yes, of course, the character I am writing for STORY A is linked to STORY A".
I am experimenting with Denote now. It is a much simpler note-taking package for Emacs. Denote does not keep an instance of sqlite3 running in the background. It is much faster, which is great for my old laptop, and accepts any files, such as markdown or any other file type you define.
Denote relies on file naming conventions instead of a database. The title of your note, as well as its creation date and keywords, are all contained in the filename for that note as well as in a heading with properties of that file. There are several commands to easily rename files and edit keywords in a way that will sync with the heading. Because filenames are predictable, you can use any command that accepts patterns to filter your notes. Here's how the file for this post is currently named: 20250510T013334--org-roam-is-not-for-me__blogs_denote_emacs_escrita_notes_org_posts_roam_wip.org
.
Denote comes with functions to use with Dired (Emacs file manager), but anything that can filter files will work. I am using the package consult-notes
, which has commands to display Denote files in a useful and pleasant way.
It is not my goal to sell you on Denote. It is just a naming scheme with tools to make it more convenient to handle files. But I do wish to stress that it feels liberating to use a tool that doesn't try to rewire my brain. I could manage my notes the same way with Org Roam, but the overhead was bothersome. To me, the promise of a hyperlinked external brain felt like pressure. I wanted my mind to be blown. That didn't happen even with almost 500 notes. I don't think it ever will. In a world with tools such as rg
, ag
, or fdfind
that are neatly integrated with our text editors, I don't need a path of breadcrumbs to serendipitously guide me to insight. I can press a button and I am right fucking there.