Nhlism

Obsidian

The next app I am going to talk about is Obsidian markdown editor. It is an app I have great respect for as both software and business. I used it in various stages for 3 years and I can definitely say it evolved a lot and is a very different product now than before. In this post I will share my motivations to try it, and what worked and what has not.

Motivation

After tiddlywiki I got very hooked on note taking and wanted to have an app where I can store and summarize research papers, some random facts about people and recipes I keep re-googling. Tiddlywiki did not end up working for me for three reasons:

  1. It got pretty slow when self hosting. This might have been fixed at this point (I used it in 2020) so YMMV, but as I added screenshots from papers it just went to hell.
  2. The mobile editing experience was just bad. The editor was not very supportive.
  3. Tiddlywiki as a single html is incredibly portable and resilient, but Tiddlywiki as a nodejs server with custom json snippets is not. I wasn't sure if it would last (it did not!). I wanted to try markdown for more portability.

My main motivations for obsidian were thus: 1. reliable, 2. mobile support and 3. a more convertible format.

Look and feel

obsidian_1 This is how obsidian looks like for me. It is incredibly customizable with regards to look and feel reminiscent of ricer linux desktops. That was a major draw for me initially. Obsidian works with markdown notes which it renders in real time. You can hover on links and it shows you a preview. If you write a link for a note that does not exist, clicking on it will create a new note which is awesome. Since obsidian is more of an editor which handles folders of text files, you need to organize data yourself. This will be a major pain point I will go through later. It offers decent search, bidirectional linking and a graph view.

obsidian_2

The tech

Obsidian is mainly an electron app. This means it is based on browser technologies. It uses a lot of very well maintained javascript libraries to handle its stack, including codemirror for text editing. The phone app is also electron based and shares a LOT of code with the desktop version. It stores data as markdown text files which are human readable and does some indexing to support search (for example, it can retrieve #tags).

Since it is basically a browser, it allows people to write javascript based plugins for it, which is an incredibly powerful ability that extends the editor. What is even cooler, these plugins then work on mobile as well. Obsidian went further and created a marketplace and made it really easy to install github-based plugins. They have a proprietary syncing solution but just allow competing (free) sync solutions right in the marketplace.

What I loved (at first)

Plugins

I enjoyed using the dataview plugin to write queries that can search for notes with certain tags and list them in a list or table view. This was incredible and very similar to my experience to tiddlywiki with regard to end-user programming and customization. I almost considered writing plugins myself

The principle of it

This might sound vain and impractical, but I do really like the company, the principles and the decisions behind everything. It's a solidly supported software with continuous updates (for the better!), no AI nonsense and a great community.

Customizability

Obsidian is definitely one of the most customizable note taking apps out there. The creators explicitly have no opinionated way how to use it, and just let me modify anything. Order of buttons? background color? Shortcuts? Text font? You name it, they just let everything be modifiable.

What I disliked

Organizing my data

Obsidian works on top of a folder of markdown files with zero opinions, which is incredibly flexible and user-forward thinking. However, this too much freedom can be paralyzing for some people. I personally struggled with this a lot since every tiny note would be a separate file in the filesystem which has to be somewhere. In the screenshot above I use one folder for all images, then link Maps of Content (MOC), and I try to dump majority of information into Notes. It still bothers me that the data is not organized and only works when opened in obsidian. In tiddlywiki the filesystem is hidden from you and you can create, open and dismiss notes from anywhere creating views you need to solve a given task. In obsidian you can open tabs (like in a browser) but it's tabs of text files.

This leads to the following paradox:

  1. I don't want to create subfolders for every sub-category of notes, I want data to organize itself based on my use of linking and tagging. Obsidian is excellent at creating a data view layer on top of this chaos and gives it order using MOC and dataview. It's not perfect as it is not their main expertise, but it works.
  2. The more I lean into the obsidian way to handle this data, the more I become dependent on obsidian the app. And while the approach (MOC) works, it is not the most pleasant thing

-> I do something I don't enjoy and which causes lock in because it works, just so I can use the app and claim I don't have lock in.

Mobile experience is just not that great

obsidian_2

It has a fully fledged mobile app and while I understand their decisions to go with a cross-platform solution, it definitely lacks a lot of ergonomics compared to mobile-first note taking apps. It takes too long to load (since it opens a browser and loads all plugins) and the UI is just clunky. I never-ever enjoyed writing a quick note on obsidian, because the buttons are tiny and I need to figure out in which MOC to put the note which is a multi-step process. Browsing stuff is annoying and I only use it to search a single note where I put my sight markings for distances. Even searching is a bit of a pain.

obsidian_3

I felt editing an existing note to be futile and the "this is a file system with text editor" does not translate well to iOS.

Syncing

A couple of times I added a pdf of a flight ticket to obsidian on my desktop and then later found my phone to have an empty note, because it did not sync fast enough. Sending PDFs is definitely not the target use case but it was annoying enough to point out.

Markdown but not really markdown

You can definitely use it as a pure markdown editor but a lot of higher functionality require metadata. This in form of a frontmatter on top of the note like this:

---
tags:
  - "#leetcode"
difficulty: Medium
---

Now, in original obsidian it was just there, but in recent versions it's completely hidden (you need to click on "source code view" to see the full markdown text. What I noticed is as I export these notes to other software, the front matter is there and it's a terrible eyesore. Frontmatter is optional but original obsidian added it everywhere. I also don't know where I should consistently put tags (frontmatter? bottom of page?)?

I think the hidden-by-default frontmatter is already a sign of "maybe it's no longer markdown anymore". I noticed a lot of my files just contain custom code snippets that only work in obsidian. I don't really mind that, but it definitely defeats the purpose of markdown.

Conclusion

I still have obsidian and I pay for the sync subscription, but I do have a growing feeling the notes put there will be very hard to transfer out. It's a great markdown editor, but as you use more of it's features you become more tied to obsidian. And obsidian is not that good as a note taking platform. From a technology perspective it's impressive how far you can go with open source (note: Obsidian itself is proprietary) libraries. It feels like a small operating system with how much you can edit the behavior. That being said, I would actually prefer some opinions about how to do things (which I can subscribe to or decide it's not my thing) and I feel markdown filesystem is not the best idea to maintain notes. They are either too plain with all the functionality in the app itself, or too polluted with code snippets which will be useless later.

#pkm