One of the most useful tools as a software developer is a personal wiki. As a software developer I often have to deal with obtuse documentation, complex systems, and a lot of information that I need to keep track of. A personal wiki allows me to organize this information in a way that makes sense to me, and to easily find it when I need it.

One thing I do want to clarify is the difference between wiki software and solutions like Google Docs or a something like Google Keep. Whilst these solutions can be used to take notes, they lack the structure and organization that a wiki provides. A wiki allows you to create a hierarchy of information, with pages that can link to other pages, and categories that can group related information together. This makes it much easier to find what you are looking for, and to see how different pieces of information are related.

At the beginning of my degree I used Notion extensively, I enjoyed the flexibility it provided, and the ability to create databases and link between pages. However, throughout the time that I used it I found that I was spending more time playing with data structures and formatting than actually taking notes. I also found that the vendor lock-in was a concern for me, as I didn’t want to be tied to a single platform for my notes and I would rather have them stored in a portable, universal format.

Whilst Notion does support a Markdown-esque set of features the majority of it’s features were proprietary and not portable. With Notion I also found that it’s native applications were slow and clunky with the simple act of typing feeling laggy which was far from ideal for something that I wanted to be as fast and frictionless as possible.

After Notion I moved around a fair bit eventually landing on a well-built web-based wiki software called Outline. Although I didn’t mention it in my post about self-hosting, I did end up self-hosting Outline for a while. Outline worked great for my purposes, it was fast, had a clean interface, and whilst not based on static files it did allow for exporting to Markdown which was a big plus. It’s search, sharing and collaboration features worked amazingly well, and I found myself using it for a lot of different things. However, when my personal server went down I decided to move away from self-hosting and towards a more portable solution.

Finally I landed on Obsidian, which is the solution I use today. Obsidian is a local-first, static markdown-file based wiki software. Whilst a little too flexible at times with its wide variety of core and community plugins, it does allow for a lot of customization and tailoring to your specific needs. Because it is based on static files, I can easily back up my notes to any place I want with the backup solution of my choice. This means I can use software like Syncthing or even Github and, with the local-first approach I don’t have to worry about being offline or losing access to my notes when I don’t have an internet connection.

If you’re looking to start using Obsidian I would highly reccomend checking out videos by the YouTube channel No Boilerplate who has videos on making sure you don’t overcomplicate your setup, as well as videos on how to use Obsidian effectively which I found very useful when starting out.

Overall, a personal wiki is an invaluable tool for any software developer. It allows you to organize and keep track of the vast amount of information that you need to deal with on a daily basis, and to easily find it when you need it. Whether you choose to use a web-based solution like Notion or Outline, or a local-first solution like Obsidian, the important thing is to find a system that works for you and to stick with it.