
Org-roam: Rudimentary Roam replica with Org-mode - karlicoss
https://github.com/jethrokuan/org-roam
======
ericax
I don't use emacs, but I love the concept of organizing your notes and
knowledge in plain text, so much that I made my own thing. It's in private
beta right now [1], and I've been dogfooding it for the past two months and
really enjoying it.

The graph overview may seem like a gimmick, but it's surprisingly useful in
reviewing stale notes. Tracing semantic connection is more fun than just
browsing a folder.

It's also super nice to be able to embed local copies of PDFs, images, and
voice notes, so I know as long as I back up my hard drive, I'll never lose
them.

Next I want to add plugins to do periodic reviews of notes, and maybe space
repetition for term/definition pairs. Honestly, these efforts only make sense
when the data is available for the long haul.

[1]: [https://obsidian.md/](https://obsidian.md/)

~~~
bravura
So this is interesting. I was ticked off when it says: "what platform do you
use the most?"

I have been looking at a handful of projects in this space, including
notion.so and Roam, but am seriously considering moving back to Markdown-
folder backed by Dropbox, for which there are a variety of editors including
The Archive, and mobile apps too.

I urge you to allow zero-friction bidirectional sync at the very least. For
me, unless I have complete data portability, a note-taking app that might
disappear in a year is a non-starter for me.

[edit: I read deeper and see you have it, thank you]

~~~
bhl
One insight when it comes to building note-taking apps with portability in
mind is that when you want to build more rich features, like collaboration or
backlinking, is that a database is more suitable to build upon than a basic
filesystem. But that architectural choice is at conflicts with portability,
because while bringing-your-own-file-system is possible with Google Drive and
Dropbox, having your own personal database isn't as popular. Anyone share
similar sentiments?

~~~
slightwinder
Yes and no. A database is just a layer. Using a dedicated database and storing
your data in it is simple. But nothing prevents you from storing the data
(including relevant metadata) outside of it, and use the database just as a
caching-layer for it superior abilities in it's own realm.

Dividing layers is of course more work and has problems of it's own, but works
well enough that AFAIK this org-roam here is doing under the hood too.

------
bravura
As a vim user, I am not an expert on org-mode. But on the zettlekasten forums,
I read an interesting criticism even of Emacs org-mode as forcing a sort of
lock-in

"[Apps like Roam and Notion] force you into a single-app interface with your
data. Interestingly, even though it's a plain-text format, org-mode sort of
fails here as well because Emacs is the only way to access most of the
functionality of an org-formatted file."

-galen in [https://forum.zettelkasten.de/discussion/404/moving-on](https://forum.zettelkasten.de/discussion/404/moving-on)

Could someone more familiar with org-mode comment on this?

~~~
mickael-kerjean
There's quite a few other org mode clients:

\- Filestash: [https://github.com/mickael-
kerjean/filestash](https://github.com/mickael-kerjean/filestash) => demo:
[https://demo.filestash.app/login?next=/view/Documents/gettin...](https://demo.filestash.app/login?next=/view/Documents/getting_started.org#type=webdav&url=http://server_webdav)
(I made this one)

\- Orgzly: [https://github.com/orgzly/orgzly-
android](https://github.com/orgzly/orgzly-android)

\- Organice: [https://github.com/200ok-ch/organice](https://github.com/200ok-
ch/organice)

\- Org Web: [https://github.com/DanielDe/org-
web](https://github.com/DanielDe/org-web)

Emacs is undoubtedly the rolls royce but the ecosystem is thriving

~~~
indymike
There are also several org-mode plugins for VS Code.

~~~
awake
Which one does anyone use seriously. So far they all look like simple
experiments.

~~~
indymike
True. For anything other than quick edits... it's back to emacs.

------
dmortin
The graph seems more like a gimmick, but the automatic backlinks are nice.

Org mode is a really good text-file based solution for notes, especially with
tools like org-rifle: [https://github.com/alphapapa/org-
rifle](https://github.com/alphapapa/org-rifle)

The other day people wrote in an other thread they use grep for their text
notes. But what if you have notes with longer, multiline texts? With org-rifle
the input words can be anywhere in the multiline note and they can be in any
order.

~~~
secstate
I'll say that I've been using org-mode and it's agenda to manage todos and
take notes for a long time, and Roam is whole other animal. The problem I've
had with Rifle is that words can mean different things in different contexts.
Rifle finds every time I used the word "depression" regardless of how I used
it. Roam gives you any easy way to add just a little extra symantics to your
notes that dramatically increases the signal in the backlinks, and
astronomically improves the graph view.

~~~
dmortin
Could you show an example of those "little extra symantics" which helps you
with this?

~~~
secstate
For sure!

So if I'm reading an article about the fall of the Roman Empire, and I learn
about how modern scholarship does not talk in terms like "fall" much anymore,
but rather civilization transformation, I might make a new stub article titled
`civilization` and then another one for `civilization transformation`

Now, if I read a story about Asoka's Empire in what is now India, and I read
about how it underwent a collapse, I might tag it with `civilization
transformation` as well.

Another story about the nature of modern civilization and the travails of
people who treat their kids as a personal project to "build" as opposed to a
living being to nurture and encourage, I would tag that with `civilization`
but not `civilization transformation`

Ripgrep'ing my org files for "civilization" would turn up all three of these
backlinks. Grepping does not understand context. But I understand context.
While `civilization` is part of `civilization transformation`, I don't want
`civilization transformation` surfaced for every search of `civilization`

This is a rather contrived example with some obvious issues, but I suppose a
good analogy would be that you can drag fish for scallops and get every other
living thing off the bottom in your net, increasing the work to clean it out.
Or you can dive for individual scallops and take longer but have less work to
do when you surface. Both methods have merit, but one provides a much cleaner
signal.

Practically speaking, I USE my Roam note's backlinks. While I _could_ grep my
previous notes, in practice I never did because it was too much work.

~~~
b3n
If you are using backlinks, why not just grep for `[civilization]]` or
`[[file:civilization.org]`?

I actually have a binding in Emacs to run ripgrep on all files in the current
directory, which have a link to the current file. It's very simple, and runs
in a split second even with 1000s of files.

------
sooheon
Set up org-roam for evaluation, but when it came time to actually do research,
the thought that has already gone into Roam UX won me over. Everything is
theoretically replicable in elisp, and there are key bind related bugs in Roam
that would be an instant fix in emacs, but "good enough and works right now"
beats "could be perfect with weeks of fiddling".

Standout features: referencing ideas is zero friction, whether they exist or
not. Universal search works. Editing note titles fixes all references. Days
being a first class citizen, where daily prompts thread your notes together
and you can reference future dates to have the backlinks show up on that day,
is genius.

~~~
laughingman2
Same thing happened to me. I was using org-mode for GTD and note-taking for
the past six months. I shifted all my notes to org-roam with links between
them. But then I tried roam, it's UX really won over me.

One thing was accessing my notes with all roam features in all the devices. I
don't have to setup dropbox/syncthing/whatever in every machine I own and
install emacs with my settings every time. And mainly mobile, If I use orgzly,
I don't get any benefit of org-roam in it. So I gave up and embraced roam
cloud.

I think there is a huge gap to be filled for a device agnostic emacs that
works well on mobile (touch), browser, native and is programmable.

------
chrisMyzel
Great - i started yesterday using org-roam and got many ideas out of my head.
Found it by reading about zettelkasten (in the fabolous "Where good ideas come
from - The History of innovation") and DevonThink (which i really miss, not
avail for linux) and googled for alternatives

------
ElDji
Such kind of text base note wiki with graph showing links can be done use
tiddlywiki and [http://tiddlymap.org/](http://tiddlymap.org/) addon.

Works like a charm, open source, self hosted

------
whitten
There was some mention of using Org-roam as an editor in a wiki. What is the
process to attach it to the Media-wiki software (used by Wikipedia, etc)

Sorry if it was on the github site and I missed it.

Thanks for the presentation, it looks interesting.

------
elcomet
Does someone have a good tutorial to learn this and emacs? I'd like to try (I
tried roam research online but couldn't connect, and I'd like to learn also
about emacs).

~~~
karlicoss
I'd say, first of all, use an existing Emacs setup, like Doom [0]. It's got
lots of very reasonable defaults, so you will spend less time being mad at
Elisp and more time doing something productive. In addition, if you are used
to Vim, you won't have to relearn keybindings.

I personally haven't got to try org-roam yet (I use a somewhat similar
workflow though). In terms of learing org-mode, I recommend trying org-capture
to quickly write down your thoughts, tasks, etc, and then seeing where it goes
from there. I started with just an org-mode file with pile of notes and I
gradually discovered the features when I needed them.

[0] [https://github.com/hlissner/doom-emacs](https://github.com/hlissner/doom-
emacs)

~~~
rasengan0
this doom-emac is wonderrful thank you for the reference!

------
mateuszf
Is it possible to link to a specific header? What if I change the header name?

~~~
yewenjie
AFAIK the org-roam main author has strong reasons for not allowing links to
headers. There is another project that you can check out - org-sanpo [1].

1\. [https://github.com/kamoii/emacs-org-
sanpo](https://github.com/kamoii/emacs-org-sanpo)

