| Every time I read about Roam it sounds like the same note-taking system I've built for myself. I just use a couple of Bash scripts with light text editor integration on top. (The Bash is so I can quickly add the same features to whatever text editor I'm using, today that's VSCode and Vim, but I setup Emacs at one point too. It’s mainly just keyboard shortcuts that call the Bash scripts.) The basic features are taking a default Markdown mode and adding: 1. Follow a link to a relative file at the cursor 2. Make a link to a relative file out of the selected text (e.g., "my big idea" becomes `[my big idea](my-big-idea.md)` Daily notes is just open a text file with the current date. (This doesn't include back links or transclusion, but I don't think those are make or break features either?) All in all this is pretty trivial to add to an existing text editor, and if you do, you get all the power of that text editor: E.g., the best search, comparison, and split view systems anywhere. Plus the longevity of plain text. I can see the appeal of Roam, especially for audiences that aren't already using an extensible text editors. But for people that do already use extensible text editors, I'm surprised there's not more discussion about how easy these features are to add. |
I thought this at first as well, but automatic backlinks make a bigger difference than you may guess. It basically turns each document into two things: 1. the document itself, 2. an automatic query of all references to this document that renders automatically as soon as the document is opened. Just like you can have a document with content but isn't referenced anywhere, you can also have a document with no content whose purpose is only to be the place where everything is linked back to, and persistent filtering per document means that you can make it behave exactly how you want. There is no difference between the concept of a saved search and a document, they have been unified.
The biggest value proposition to me is that you maintain each document by itself, only changing things in one place, and other documents/views automatically reflect that. Automatic backlinks with persistent per-document backlink filtering is one way Roam enables this pseudo-DRY thing where you only edit things in one place.
The other big thing it does to enable you to avoid repeating yourself is document embedding: where one line of a document or whole sub-document is referenced and looks like it's embedded in the middle of some other document. Interacting with an embedded document works the same as editing any section (you can still tell it's linked, there are read only modes etc) and the edits actually go through into the original document. Combined with fine-grained sub-document references (e.g. a paragraph or a single todo checkbox) this allows you to create things like temporary daily task lists where when you check off items they actually get marked completed in their related project where you created them, and you don't have to manually synchronize any edits. It's like you get to have your cake and eat it too. For example: do you want to organize your tasks along with the project they're related to, or do you want to organize them in the order you want to do them today? YES.
Not having to repeat myself is by far the best feature for me, and back-references combined with sub-document embedding both enable that to a very large degree. I despise having to maintain the same collection or list in multiple places, or the friction of renaming a document because now you have to fix all the references to it, or even keeping the name of a file in sync with the document header. These are things that I find pure files on disk grates on me enough to abandon the affair.