Org-roam After One Year (now Two)

I started using org-roam at the end of 2022. So, now at the close of 2024, I've been using it for about two years. For myself, and some others who asked, I wanted to write a bit about it. But, it took another year to write that summary, so here we are!

[org-roam graph; lots of dots connected by a mess of lines]

My org-roam database graph as of 2024-12-30, two years after starting.

Here's a picture of my database. It has 160 vertices (notes), which is relatively small. Some numbers I've read (with no justification whatsoever) are that it takes roughly four years and/or 500 notes for the database to start feeling like a "second brain". I'm not sure whether mine will ever be that, but it's useful enough for me to keep going with it.

How I use org-roam

You gotta nurture a garden of strange flowers and unknown fruits inside yourself bro.
@[email protected]

I use my org-roam database for personal notes about things I want to remember. Things like:

  • a poem I liked
  • the name of that painting that I always forget
  • a history fact that I had wrong, and learned
  • syntax for a command-line program I use, but only rarely (tar, ffmpeg, pdftk)
  • thoughts that stick in my brain, and need to get out
  • details about my rock collection

Highlights from my graph

Here's an overview of some of the larger clusters of nodes.

learning org-roam, getting started, learning zettelkasten, org mode

For the first year these were the most-connected nodes in my graph; not a good sign! Now they're still somewhat central, but nothing like the majority. These include some notes that I refine over time about how I use (or want to use) the org and org-roam tools.

self-reflection, personal handbook, how-to usage notes

These link to notes about little things I learn (how to do, or about myself, etc.) that I want to keep track of. This was the core stuff that motivated me to start org-roam. I knew it would take time to grow, because I can only write it as I go. The thought that got me started was this: It will be four years from now in four years. When that happens, do I want to be four years into this project, or not?

goals-2023, goals-2024, goals-2025

These are some notes where I organize annual goals (personal, professional, and others). I didn't expect this to be so useful, but it is, and I like it.

social math, math I do, writing math

These link to notes about doing stuff, or how things are related in my mind, or links to external documents. This was another surprising (to me) use of org-roam, but one that I also like.

How I don't use org-roam

It doesn't replace the organization of my filesystem. For example, I have a collection of files for quizzes I use in my courses. Those are organized perfectly well in the Teaching part of my home directory, and they don't need to be merged in to my org-roam database, even though of course they are part of my knowledge.

I don't use it to organize references, or research ideas. I know other people do, but I already have other working systems for those things, and duplicating them in org-roam hasn't yet seemed worthwhile.

I don't use it for products that I "publish" to others, in any format. Those products, and the materials I use to make them (references, latex style stuff, drafts, notes, etc), have other places in my filesystem. Usually I have some README info for those things, and I just leave it with them rather than moving it into org-roam. For example, I have a note about how to fill out expense reports in my folder with submitted reports. I have a note about how to transfer final grades in my folder with teaching notes. These are things I want to remember, but I haven't yet imagined a good reason to connect them with other things I know.

Some difficulties and sources of friction

The tool becomes the task

This is my phrase for the inversion where I spend time making or remaking content that I can then apply the tool to. For example, a complex system of made-up tasks so that I can test the agenda functionality. Or, a bunch of basically empty notes so that I can test the linking and graph-visualization features. Some of this is certainly needed when learning a new tool, but I don't want a tool where the main thing I do is work on setting up or refining the tool itself.

Organization overload

With org-roam, I now have another place to look when I want to recall something that I remember writing. This is not ideal! To help keep this straight, I try to set up clear boundaries around what kinds of things do and don't get organized in different ways. If this is done well, then I still have only one place to look for any particular piece of information.

Some things are better forgotten

There can be an impulse to keep everything, and org-roam can support that impulse. It can be productive to have limits though, and willingly let some ideas go away. Sometimes the cruft of past ideas, partial attempts, and rough-but-not-workable ideas is just a hindrance, and the best way to organize those notes is right into the trash. (Yes, self, I'm talking to you!)

Background and Context

Personal Knowledge Management (PKM)

Org-roam is a tool for doing Personal Knowledge Management. That's a really broad subject, that means lots of different things to different people. As a bit of context, here are the key points that seemed useful for me.

  • Personal means it's designed specifically for one person's thought process and style of thinking.
  • Hypertextual means it has features that transcend the text (mostly links, but also tags, and maybe other features).
  • Atomic means each note should be one unit of knowledge. (How those units are determined is intentionally vague though.)
  • Connection v.s. Collection is a distinction that draws attention to the network of links between notes v.s. the accumulated content of the notes themselves.

Zettelkasten / Slip-Box

This one particular style or paradigm for PKM. It's one of the most thoroughly-developed and widely-known, so it's easy to find information (and varying opinions) about what it is, how to use it, and what it's good for. I used these things as a basis for figuring out what I wanted my org-roam database to be and how I wanted to use it.

Plain Org Mode

Org Mode is an emacs mode for editing, formatting, and organizing text documents. It's similar to markdown, but has many more features.

One piece of advice that I heard a few times and turned out to be impactful: If you're already using emacs, just use org mode. That is, just start using .org for plain text files where you would use .txt or .md. Org mode has a lot of functionality, and it's generally too much for any particular person at any particular time. But you can start using it at the most basic level, and grow over time.

Here are the most basic uses that I started with, in personal outlines or README notes to myself.

  • headings/subheadings in outlines
  • bold or emphasized text markup
  • TODO lists
  • automatically managing dates like [2024-12-31 Tue]
  • code blocks with appropriate syntax highlighting

Yes, you can do these things with regular markdown, and I did for years. The reasons to prefer org mode have to do with other, more advanced, features. In my experience though, I couldn't really use the more advanced features until I was comfortable with the more basic features of org mode. So, the recommendation is to just use org mode in the most basic way, and add advanced features if/when you're ready.

Here are the two things I would consider "second steps" with org mode.

  • Org Agenda
  • Org Export

The agenda is useful, and powerful, but benefits from some basic familiarity with org mode and a robust collection of things to go on the agenda. Without that, it's easy to get set up with an agenda full of "test item 1", "test item 2", etc. and the organizational tool becomes its own independent task. So, I recommend just using a plain TODO list until it's large enough, or split over enough separate files, that the agenda tool is doing a nontrivially useful task.

The export functionality has sort of the opposite difficulty for getting started: it's easy to find situations where one has genuine use for a lightweight tool that exports pdf from plain text. But the default style for documents exported from org mode is really awful. It takes some nontrivial trouble to get something that looks nice, and it's hard to know whether that's worth the effort until you can be reasonably sure that you really want to invest in org mode itself.

For a person who is sure that they're going with this org thing, the agenda and export features are really great. I can see why people start with them as attractive features of org mode.

For now, those are the fanciest things I use org mode for. Well, and now org-roam I guess!

How I don't use org mode

  • Longer-form math: writing directly in latex is better for this (for me), and I already have various document templates and style files that I use for this kind of thing.
  • Documents for other people: I don't assume they're using emacs, or familiar with org mode, so I wouldn't send them org files unless they asked. (No one ever has!)
  • My website: I already have my own system for writing and posting things to my website. So far I haven't seen a need to redo that setup for an org-based workflow.

Takeaways and Recommendations

Is org, or org-roam, useful for you? I have no idea! The recommendations that helped me were:

  • Try using .org wherever you currently would use .txt or .md. If you never take it further than that, it's still good (headings, date formatting, code blocks)
  • If you keep todo lists, try setting up an org agenda file to track due dates/status.
  • If you need basic pdf notes/reports, try setting up org export.

Now, my further thoughts: I'm still not sure about the "second brain" hype around Zettelkasten and org-roam. Maybe I just haven't used it enough, or in the right way, but I'm also not sure that I ever will.

Even so, it is a very good collection of notes, and there are some interesting connections on my graph. It has helped me keep better track of some things, and not have to relearn them.

It helped to be clear about what role org-roam fills among all the things I do and tools I use to do them. My usage also benefits from some discipline about what kinds of notes I write, how I revise them, and how I maintain the network of links.

Alternatives

Here are some of the alternatives that I considered.

  • doing nothing!
  • physical notes on loose papers
  • physical notes in notebooks of various sizes
  • digital notes on Google Keep, or Dropbox, or Evernote
  • digital notes in PKM software like Obsidian
  • text notes in my filesystem
  • a personal wiki

Honestly, I don't know how a person is supposed to choose from these. My motivations for going with org-roam were roughly in two categories:

  • Familiarity: I already use emacs, and I'm in deep enough to commit to it.
  • Ideological: I wanted something open-source and free as in freedom.

After looking at alternatives, org-roam seemed like the best option for me. I have tried some of those alternatives in the past, and I still use some of them, but none of them have worked for the kind of personal/miscellaneous stuff that I'm now tracking with org-roam.

Considerations

One consideration is that independent software needs to be kept working in one way or another. If you're already using and maintaining emacs, then org-roam doesn't add much overhead.

Another consideration is the extent to which various systems do or don't fit into one's existing workflows. If you mostly work in emacs, and especially if you're already familiar with other org mode syntax, then org-roam won't require too much more.

A third consideration is how much a particular system will be able to grow as one uses it (both in size, and functionality). I liked that org-roam has the promise of advanced and complicated usage if I eventually decide I want it.

Resources

Two years ago, I would have said there's no need to post these links, because you can just find the same ones with internet searching. Oh how things change so quickly.

tags: social | info

Site Info

icon CCicon BYicon NC The content of nilesjohnson.net is licensed under CC BY-NC 4.0.