Rg-roam: minimal org-roam with zero config, no sql, depends only on ripgrep

Emacs 29 was marked insecure in nixpkgs recently, and I found myself stranded on Emacs 30, where a lot of packages broke. I have had similar experiences before and decided to do something about it, so I wrote rg-roam[1].

From the README: “rg-roam is a minimal standalone org-roam implementation, using ripgrep instead of sql. It requires no configuration – you can use it even without a .emacs file.”

That README goes on to explain everything it requires (which are Emacs and ripgrep), and then how to use it, which if you’re already familiar with org-roam should be straightforward.

[1] GitHub - JeffreyBenjaminBrown/rg-roam: A minimal standalone org-roam implementation, using ripgrep instead of sql.

3 Likes

Welcome to the club :wink:. I did this two years ago and have never looked back (see GitHub - rtrppl/orgrr: A fast, feature-rich and reliable note-taking system for Orgmode/Emacs. Just files, no database.).

Did you see org-mem (GitHub - meedstrom/org-mem: Turn thousands of Org files into a database in seconds)?

1 Like

I was not aware of either of those! I love the
“related notes” command in your package.

Something related that I often want is a “cousins” view – every other note linked to from something that links to this one. If I had time for it I’d use your code and add that but alas I’m working on a separate note-taking app focused on sharing:

Somehow I missed your reply, it has been a busy week. Looking forward to your new project. Do you know The Brain? Your project sounds a bit like that, just for Emacs.

I know about it but have not used it. It’s one of the systems I shout-out to in the README.

Sharing in TheBrain seems to use a traditional permissions model – if you have access, you can either read or write to a document. Skg would let you manipulate your view of someone else’s data as if you owned it, while staying informed of their changes and without affecting how they see their data. It would also let you learn more about the things in your notes from how someone else integrates yours into theirs (if they share that info).

I’m looking forward to it too. Thanks!

The project sounds like an interesting (but also highly complex) idea. Yet, I still struggle a bit to see what the real benefit would be. These notes that people write are part of their personal knowledge graph but not intended for wider publication, right? Why would I search the preliminary notes of others on a specific topic whenever I write something to remind myself? And would you truly care if the source of a quote is updated? This feels important for something like Wikipedia but not a personal Zettelkasten.

Don’t get me wrong. I have many quotes and external references in my notes. Quotes from websites have a source URL and date. But the real added value for future me has always been my personal thoughts added to that quote - or linking it to other notes of mine. Do I miss something important here?

Do you not think universal thoughts? Would you not like to share ideas like those in the following tree with others, without necessarily duplicating the entire tree structure?

Sadly no, I guess. :laughing:

Let me give you an example.

This is my note on writing as a form of thinking. It combines my reading of ideas from two books (Ahrens 2017, Allen 2024), an article (Luhmann 1992) and a quote from a website. But it is not of universal value (nor well written) and should not be treated as such. In a best case scenario I use my notes to write a text that will be published. The notes themselves have little value.

But I don’t want to be all negative. Perhaps I just misunderstood or you intended to create something more akin to a social network like Mastodon, X or Bluesky?

Universality is, I admit, not something I achieve a whole lot in my graph. But if we pooled everyone’s universal linked notes we could have something better than Wikipedia, at least in that it is not subject to the dictates of whichever editors win the Wikipedia power struggle.

Wikipedia is certainly not perfect – perhaps nothing is. But doesn’t Wikipedia’s key value lie in the creation of curated and edited knowledge (and the transparency of doing so)? It is not for no reason that authoritarian and authoritarian-curious figures are constantly attacking Wikipedia.

Sorry, I responded before seeing your last comment. I absolutely think your note referenced therein is of universal value. It is about a universal truth. (That’s not to say every person will take the time to learn, but it’s true.)

It could be in a graph marked as the both of us believing it. And that graph could also include other equivalent notes, and (assuming the authors engage in sufficient atomicity – I think you do) a relationship indicating their equivalence. Indeed the equivalence of many such notes would be testament to their validity.

I love Wikipedia. But I want a quantum version. Everyone’s ideas, however true or dumb or entertainment, could be visible at once. The links from people to ideas (and any note like “I like [these things]” or “I beleive [these things]” could be used to infer such relationships) could be used as transparent epistemic guidance. (As opposed to the opaque epistemology of my basically trusting Wikipedia’s political process, fact-checking only things that strike me as unlikely or wrong.) We could even have explicit epistemological algorithms.

Indeed a subscription algorithm is in essence an epistemological algorithm. We already do this in reality, just without a written record: We listen to some people more than others. Explicit user-defined subscription plans, perhaps incorporating probabilities to ensure the diet includes some disagreeing points of view, would be feasible.

Now it sounds, apologies in advance, like a Pinterest of ideas. :wink: Apart from figuring out the methods of interaction for such a platform, it might also be a major technological task. For example, you would either need a central server associated with high costs and responsibilities for you or many decentralised nodes that create a myriad of syncing headaches.

Again, I’m sounding too negative, my apologies. I started to learn Elisp to solve my needs and this is still at the core of all my coding projects. Org-roam v2 was bad, Dired felt too cumbersome, Elfeed does not allow for content-based search… all reasons for me to do something. So if this is your personal pain point, then you should absolutely go for it.

like a Pinterest of ideas

It is an honor to receive the comparison.

you would either need a central server associated with high costs and responsibilities for you or many decentralised

Valid concerns. You led me to add this to the FAQ:

you should absolutely go for it

I am absolutely going for it! (In my spare time … like watching paint dry …)