@readwithai - X - blog - machine-aided reading 📖⚡️🖋️
I was a long- term user of Emacs Org mode but now I’ve switched to Obsidian for various reasons. In this post, I talk about some of the trade offs. If you are considering the move (in either direction) then this might be useful. Also there are things to learn in both directions.
Differences and similarities
In Org mode the basic unit of data is the outline heading (and there are many of these in a file). You an attach properties to them and move these around. Whereas Obsidian everything is far more “note based” and you navigate between notes. Tags apply to notes and properties. Use of notes is made easier by good fuzzy note search, completion when creating link, and easy-to-use back and forward buttons.
The short cuts, commands, command palette interface in Obsidian is highly reminiscent of Emacs (though the influence may well come via VSCode rather than from Emacs directly). Obsidian expects you to define your own keybindings like Emacs, and provides convenient utilities to do so.
There is not an Obsidian native equivalent of Emacs’s in-editor lisp. Instead, you have a plugin system reminiscent of VScode. A difference here is that Obsidian is based on web technologies, being in many ways a thin wrapper around Electron (a “browser” that gives you access to nodejs) and CodeMirror (a web editor component).
Benefits
Obsidian is an application that delights with lots of things that “just work”. The completion when you type “[[“ to create a link is nice; the visual graph view of your notes is nice; in general, Obsidian renders more of its markup language and so is a bit prettier.
I found the code block interface (similarly to Org’s Babel) very nice. They automatically execute (there are downsides to this!) and render when you are outside of them, and you can just scroll into them with the cursors when you want to edit them. The experience of working with code blocks tends to be nicer.
The use of Markdown rather than Org mode’s own mark up language feels like a win. More people know Markdown and you are switching language less.
The plugins that Obsidian provides are often easier to use and the experience of installing them is generally more slick than Emacs. Though, there aren’t as many plugins and you can’t customize them as much. Many of the plugins are also written around the mouse and separate toolbars which is a little annoying coming from Emacs where everything is very keyboard based. In truth I’m not really used to having sidebars taking up space and showing me information: I want to ask for the information.
There are downsides to the plugin framework, but a couple of big payoffs is that you can have a bit more control over the “user experience” as a plugin developer and you also have access to all the browser DOM system.
One experience I have around every 4 to 6 months in Emacs is managing to break my configuration somehow and spending hours fixing it. This is something that is easier to avoid with Obsidian since the plugins and set up are more “contained”.
Obsidian has a note query language called Dataview which is very easy to use, and something that Obsidian should have. Org mode does have something called org-ql but the ability to embed your queries in documents that Obsidian provides is nice.
Obsidian has a different community that is less programming based and there a things to learn from them. They seem to have a bit more of the tools that delight mindset rather than the tools to get things done mindset. Some of the content surrounding Obsidian is distinctly self-helpy complete with a dozen or so YouTubers. It does feel like there is some real content there, however. I think there potentially more academics (though not physicists, mathematicians and computer scientists) in the Obsidian space than the Org mode space.
Disadvantages
The main downside is missing features. It’s noticeable that the first thing I did when I switched from org mode to Obsidian was start implementing plugins to add “missing features from Emacs. (One to do in-editor scripting, another to navigate headings)
Programming plugins is a bit of a more complicated task in Obsidian than it is Emacs, where you can just write a function. Ironically, one of the first things I did was create a plugin, called Plugin REPL, which allowed me to execute code a define functions within Obsidian. The plugins use TypeScript, which has its benefits for big plugins, but feels like overkill at times and comes along with a build step. The build process for plugins is a little weird (though it did just work with the sample plugin they provide). Nevertheless, for some of the features I wanted I ended up having to understand it and now I know able about JavaScript bundlers, nodejs require imports, commonjs versus the new import syntax and Electron… which is probably more than I should have to know.
There isn’t really an equivalent of org-babel, even though you can execute code blocks. There is a plugin that claims to provide these features but it mostly seems to be based on webasm, which is a bit weird and I couldn’t do what I want in Python. I suspect this might change over time.
A big downside is that Obsidian isn’t open source. For me, this is partly an upside, as at some point in the future I plan to try and sell some features in Obsidian. But then… I’m not actually sure that Obsidian really has a commercial model for plugins. It feels a bit “you are open source”, “we collect the money” at times. But, the fact that they aren’t open source means that the app can be a bit more slick and have wider reach.
Nevertheless, despite being commercial Obsidian is run locally (unlike things like Notion) and produces notes in Markdown making it not too difficult to escape from the infrastructure. Additionally, I don’t actually think it would be too difficult to reimplement an Open source Obsidian so that all the plugins that are available work with it if Obsidian died.
Things I learned from using Obsidian.
Obsidian has a different community to Org mode that is more about making notes and less about programming, with corresponding pros and cons. There were some interesting concepts I picked up by switching to Obsidian. Firstly, Obsidian forced me to break away from the “one big file” pattern that I had used in Emac, mostly out of habit. I think one of the reasons for this change is that I used Emacs for both programming and note taking which made me more concerned about losing my place when switching between files so I responded by having a big file with my notes.
Once I had switched to one file per concept”in Obsidian, I found that I learned a few things from using things. I quite liked the concept of Maps of Content, that is so simple yet useful that it probably would have been excluded from the somewhat pedantic / individualistic community that can come from programmers. I quite like the idea of a home note in Obsidian and ensure that all your notes connect upwards toward this note. And find that this structure can cause your notes to be “connected” to your goals and plans.
Closing thoughts
Obsidian feels a bit more like a “complete” system for note taking, where as Org mode is more a system with which you can build a complete note taking system in some ways. It might be quite easy to take the things that make Obsidian good and transport them into your Org mode. Part of what software can provide is more a way of doing things than the actual implementation. In a way, Obsidian has taken things from org mode or personal wikis and refined them for the mass market.
If you found this post interesting you might like to read
This review of note taking in Obsidian that summarizes a dozen or so blog posts and videos with footnotes; or
To have a look at my plugin Plugin REPL which imports some of the “zen of emacs” to Obsidian by letting you script Obsidian from within itself.
I am @readwithai. I make tools and write about productivity, agency with particularly attention to reading and Obsidian.
You can follow me on X where I post a stream of ideas related to my work and software hack. I write about things related to reading, research and Obsidian on my blog.