I wrote a new function to better surface related notes for my minimalist org-roam v1 clone orgrr. The function collects all notes related to a given note to the second degree – the backlinks for the backlinks and the outgoing links mentioned by outgoing links. To use the image of a family, it considers parents and grandparents as well as all children and grandchildren of a note. All links to a specific note are counted and the resulting list is ranked by frequency and presented in side-window (invoking the function again closes the side-window). Pretty stoked by the results!
One of the main ideas of the Zettelkasten-approach (“This is the way”) is to be able to pull out a number of cards and to look at them at the same time. For a while I tried different ways to replicate this with orgroam (and orgrr).
One of my ideas was to open all relevant notes in a new frame. This worked only ok-ish. Managing multiple frames in Emacs is somewhat hard (for example, all windows have to be re-arranged manually) and there is a limit to the number of notes that you would be able to see at the same time.
Another idea was to use the great org-transclusion package. In my personal use, however, I frequently encountered two issues. First, I only needed a line or two from a note and entering the line-numbers for org-transclusion – despite being easy – added a bit of friction. Secondly, I frequently use my notes as a starting point to write more comprehensive articles/notes. This requires changes to the contents of an existing note that should not affect the source note.
So in sum, I wanted to see a number of snippets from different notes at the same time (with links to their respective sources) but fully moldable to my liking. And I wanted to be able to rapidly add snippets to different thematic “desktops”. Enter orgrr-projects.
Orgrr-projects is the first major deviation from the original org-roam v1 ideas in orgrr. All notes within the org-directory and the roam_tag orgrr-project are an orgrr-project. This makes it very easy to add a note to or to remove it from the list of orgrr-projects. orgrr-open-project presents you a list of all active projects and lets you quickly open the selected one. One use case, for example, would be to have quick access to your favorite problems.
orgrr-add-to-project now lets you add the current line – of either any visited org-document in the active buffer (within the org-directory) or in the *Orgrr Backlinks* buffer – to any of these projects. A link to the source document is also added.
Org-roam v2 is an amazing project and brought org-roam to a new level of sophistication. Still, I never made the switch. As a reminder, the crucial difference between the two was the move from files as the main unit of interaction to “nodes”, which are org headlines with an org-id attached to them. This allowed for impressive graphs and more thorough linking to headlines (and even to show backlinks for nodes) but it never clicked with me and so I continued to use v1.
This worked fine for me until recently, where some weird emacsql problem broke the interaction between Emacs 29 and orgroam v1 on a new (old) intel Mac from work, which I wanted to use for field research (instead of my newer and expensive MBP). Enter orgrr:
Orgrr is an almost feature-complete replica of the core functionality of org-roam v1, built using ripgrep(rg), a lot of regex and hashtables. It does recognize alternative note titles (#+roam_alias) and tags (#+roam_tags) as introduced by org-roam v1. Orgrr currently only works with org-files (i.e. files ending in .org). If you also miss the first version of org-roam or prefer to not use databases (or to reduce dependencies), then this might be something for you.
PS For full text search I strongly recommend deadgrep, which also uses rg.