The Roam paradigm (which may be thought of as a digital version of the Zettelkasten method, but not the same) does significantly reduce the friction of writing thoughts down, and you can incrementally make your knowledge base richer by editing notes and refining them. I've only recently started to maintain my notes in a Roam-like format so I haven't yet seen the benefit of bidirectional linking (I can easily find the relevant note by just doing a title search on my collection) but I can see how this could be useful as your collection grows.
When I found Roam Research I had two thoughts: 1) wow, this UI is rather polished and the UX is very good too and 2) it would be quite annoying if Roam Research disappeared after I had put in a lot of effort in my database and became familiar with the editor and UI/UX affordances. I know you can export the Roam database to a quite sensible JSON/Markdown format, but if I can't self host the editor I will always be worried about this.
Basically this was a a deal breaker for me so I looked around for alternatives and found org-roam[1]. It's an Emacs package that gives you a similar workflow for creating notes, inserting links to notes, viewing note backlinks and a few other things. It's easier to get into the org-roam ecosystem if you already either use Emacs or vim, but I know a lot of people that have started using Emacs just to use org-roam.
There's a quite high learning curve compared to Roam Research but you have the certainty that it won't disappear from one day to the next :)
I don't want to be too much of an Emacs/org-roam evangelist because it's definitely not for everyone, but here are some of the workflows I do regularly:
1. Have a 'daily notes' file where I initially write most kinds of notes; for example when I change the configuration of a system I'm working on, lecture notes, or pretty much anything else. I can insert inline images and attach any kind of file to each of these headings.
2. Refile those daily notes into dedicated notes and link them to other relevant notes. For example, I would link the file containing my notes for a given lecture to the top-level note for that class, etc.
3. Manage the research notes for my master's thesis. I actually have a pretty cool workflow here:
- I find interesting papers or websites online and capture them into Zotero[2] using the browser extension. This automatically creates a fully populated entry in my .bib file and downloads the relevant PDF or snapshot of the website into my local storage.
- I then use helm-bibtex[3] in combination with org-roam-bibtex[4] to create and easily access my notes on this particular bibliographical source. This note is just like any other org-roam note, so it can contain forward and backward links, etc.
- And finally, I use org-noter[5] to read the PDF and make notes on each page or paragraph. These notes are simply plain text entries on the bibnote. This is pretty huge for me, because it gives me a very focused interface for reading and processing what is being said in the article while I make detailed notes about it (which helps recall and understanding). And also, finding exactly where in the source a given note came from is literally one keyboard shortcut away.
In conclusion, it's a lot of up-front learning and tweaking to get your knowledge management system just right for you, but it may be worth it for some people. BTW, feel free to join the org-roam Slack - there are a lot of people there who are very willing to help.
[1] https://github.com/org-roam/org-roam
[2] https://www.zotero.org/
[3] https://github.com/tmalsburg/helm-bibtex
[4] https://github.com/org-roam/org-roam-bibtex
[5] https://github.com/weirdNox/org-noter