Obsidian is an IDE for linked thought

By "IDE", I mean "Integrated Development Environment". It has a plugin-based system not unlike VSCode, and like any other IDE, it offers a toolset that makes accomplishing things faster.

A few examples:

  • Unified pop-up search that lets us fill in the titles of linked notes, or create new ones that aren't already present. This facilitates the note linking process by eliminating the need to search for another note in a different UI. This is one way Obsidian plays the role of an IDE.
  • Graph view that lets us visualize connections between notes, and browse through notes that are along the path from one idea to another
  • Automatic back-link detection for notes that have smaller titles with one-click linking. This also reduces the barrier to note linking.

Being able to actively cultivate linked thoughts via linked notes helps foster connections between ideas. In contrast to Evernote, which also supports note linking, Obsidian's ability to use the pop-up search to insert links helps a ton with linking notes. In other words, the UI reduces the friction involved in linking notes.

Building a great personal knowledge graph with Obsidian

Obsidian is a very unique product amongst personal knowledge management software. Over a recent two-week break that I took from work, I spent some time really digging into Obsidian and the broader idea of "personal knowledge graphs".

One particularly excellent example of how to build a personal knowledge graph is done by Andy Matuschak.

Why Obsidian?

Some of my own notes on Obsidian:

  1. Obsidian is an IDE for linked thought
  2. Obsidian operates on open standards
  3. Publishing Obsidian vaults is cross-platform and portable

How to build an effective notes/knowledge graph

How should notes be written to make an effective knowledge graph?

Paraphrasing Andy Matuschak:

  1. Notes should be atomic
  2. Note titles should imperatively advance one idea
  3. Notes should be centered around concepts
  4. Notes should be linked densely

And my own thoughts tacked on:

  1. The knowledge garden should be tended to daily

How to build the notes site?

Now, what were the exact steps in building out the notes website?

Firstly, I used Obsidian to author the notes. The fact that it's a great IDE for linked thought helps a ton.

Secondly, I used an unpublished, install-from-source-only Python package, apparently developed by a Google engineer called Lettersmith to compile the markdown files into HTML files. I followed a baseline script by another GitHub user @kmcgillivray, who made obsidian-lettersmith, which provided a starter script I used as a base. I used a Jinja template to populate each page.

Thirdly, I re-visited Bootstrap docs to get styling done in a Bootstrap-idiomatic style. Previously, I was completely unaware of the styling utilities available. This meant I was maintaining very poorly-documented CSS hacks to get styling done right. By using the Bootstrap 4 utilities, I was able to compose together styling in a fashion that was much, much easier to maintain.

Fourthly, I wanted hover previews, which meant hacking the Jinja template with some custom JavaScript. Not pretty, and a bit verbose in the compiled pages, but it worked :).

By this point, I was happy enough with the sort-of-replicated Andy site.

I continue to use Obsidian to author the notes. As an IDE for linked thought, the graph view helps me see which notes are still isolated to one another; this gives me a great visual hint as to where I could add more links. I also continue to hack on the notes UI. The source code is in a private repository at this point, as I have plans to separate out the code for building the site from the notes source.