For the past couple days, I’ve been wanting to set up a personal wiki. From my understanding, personal wikis were a big fad in the earlier 2000’s, and have now died out. Perhaps the reason for this could have been the emergence of more popular note taking formats rather than wiki syntax, or because the rise of large-scale information databases like Wikipedia left users thinking that wikis are not suitable for personal use.

So, I decided to try it. After all, what was there to lose but a bit of time? I started looking into options to create my wiki, of which there are many good FOSS ones out there. Here is a list of the main ones I considered and a little about them:

  • Mediawiki - This one is extremely popular and runs tons of websites. It can be used as a content management system similar to Wordpress or Drupal. Mediawiki is the software which powers Wikipedia and other large wikis.
  • Dokuwiki - Similar to Mediawiki except it doesn’t use a database.
  • Tiddlywiki - Designed to be a personal wiki, as well as aiming to be easy to customize. Information can be reused by dividing it into Tiddlers.
  • Zim - The best for those who want a more modern note taking app (like Joplin or Tomboy) but also support for wiki syntax. It has a WYSIWYG editor and is easily configurable and extendable through plugins.

In the end, I decided to go with none of these, instead using vim with the vimwiki plugin. There are a couple reasons I did this:

  • Firstly, I didn’t want to have a database. I wanted my notes as regular .wiki files which I can sync, convert, and take wherever, as well as open in other applications. Vimwiki is probably the fastest and easiest option for this, though Dokuwiki also does this elegantly.
  • Secondly, Vim is lightweight enough to open extremely large files with little delay and memory consumption compared to other editing options. This was the main reason I chose vimwiki over Dokuwiki.
  • Thirdly, I wanted to keep my system minimal and since I already had vim (specifically neovim) on my system, all I needed to do was install the vimwiki plugin.

So far, I’m very happy with this plugin and am glad I chose Vimwiki. I used the default Vimwiki syntax as I had used Zim before and the syntax is similar. Although there is an option to use Mediawiki or markdown syntax with Vimwiki, there is no built in export to html support, although you can use other tools such as Pandoc. Since I didn’t want the hassle, I decided to go with the native format.

Here’s how I structure my wiki. At the top level directory, I have one ‘master’ index file and a variety of subdirectories representing large categories such as general notes, programming, software, etc. Each subdirectory also has a separate index file along with a mix of other notes and subdirectories. All separate subdirectories have an index file inside of them.

I rarely touch my top level ‘master’ index file. This file links to the index files of main subdirectories located in the top level. Those other index files are the ones actually linking to articles. This allows me to have a hierarchical structure to my notes.

So that is my setup with Vimwiki. I am still a relatively new user of this plugin, so I still have a lot of learning to do. I very much enjoy having a personal wiki and hope that with whatever wiki option you use, you will have a neat and organized information database that serves you for years to come.