Sitemap

A PhD Examined: Keeping a Personal Wiki

Why and How I Started Making a Repository of Things I Know

Joe Riad
9 min readNov 17, 2024

Ever since I graduated college, I started noticing that life tended to get more complicated at every new milestone I achieved. I was enrolled in a master’s program so I had to stay on top of schoolwork and research. I was also working part time so I had to maintain a good performance at my job and fulfill all my responsibilities there. As I moved to the US things got more complicated still as I also had to manage a lot more paperwork and ensure I maintained legal status. In addition to all the complicated things in my professional life, there were always many things I had to do as an adult: maintain my home, keep myself well-fed, do laundry, pay my rent, pay taxes, etc…

With increasing levels of complexity, I found myself having to keep track of larger and larger numbers of facts. Not all these facts were technical as some were just related to paperwork procedure I had to follow or to my home life obligations. Often times I found myself following a long thread of Google searches only to realize I had looked up this exact fact a couple of years earlier and had gotten the same result. It was all very frustrating and it showed no signs of getting better.

This article will be about my experience trying to deal with that problem and how I have solved it in a way that works for me.

Photo by on

My Experience

Because of all the frustrations I mentioned in the introduction, I kept thinking that it would be nice if I had my own personal Wikipedia, full of facts that were important to me and that I could search easily. During my master’s program, I had this thought many times but never actually bothered to follow through and see if it was possible. I had also heard from professor of mine who co-founded his own company that he had started a company-wide wiki containing all the information and procedure that his team was supposed to know and follow. It was also open to all so that anyone could add new information to it. It sounded great but I felt that it was too complicated for me to implement for just myself.

When I started my PhD program, I still thought about how good it would be to have my own wiki but never took any practical steps in that direction. I saw the team wiki concept in action when I went on an internship and the company I interned for had implemented its own wiki. I found it very useful as it helped me navigate the new environment in the company very efficiently. This hands-on experience with a more personalized knowledge base was the final catalyst I needed. It finally convinced me that I needed to invest some time into finding a good personal wiki software and to start filling it with my own facts.

My goal was to never have to search for the same information twice. Once I had invested the time to sift through forum posts and tutorials on a specific problem that I thought could come up again, I would write down what worked for me in the wiki knowing that I could look it up later. The same went for routine procedures that I knew I had to repeat regularly or technical facts that I knew I would need to refer to later.

When I finally implemented this approach it ended up saving me a lot of time and, more importantly, made it very easy for me to share this knowledge with friends. I can remember at least 2 situations during my PhD program where I did that:

  1. Someone had asked me how I managed to set up password-less login to our lab servers
  2. Someone needed help setting up a part of the tools we used for our circuit design work.

In both cases, I had added instructions on how I did that to my personal wiki. In both cases, I was able to export my notes into an HTML file and share that with my friends who were able to immediately solve their problem using these instructions. Needless to say, I still maintain my own personal wiki both at home and at work.

Software I Tried

The road to my current wiki setup was not straightforward. I tried several different programs before I settled on the solution I have now. I will describe the software I tried here, in chronological order, and comment briefly on my experience with each program.

TiddlyWiki

Of all the options I tried, is the only true wiki software,
in that its main purpose is to build a wiki-type knowledge base. Some of its
features that I found helpful:

  • Free
  • Cross-platform
  • Very nice formatting options
  • Multi-media support (can attach images, audio files, and videos to your pages)
  • Great Android app support

The main drawback of TiddlyWiki for me was the difficulty of setting it up and maintaining it. What ultimately led me to look for a different solution is that I felt that adding new pages to it was complicated. I wanted a flow where adding a page was so simple that I didn’t hesitate to record even the simplest facts I needed to remember.

A screenshot of the TiddlyWiki website, itself made of TiddlyWiki pages

Joplin

When I decided to move away from TiddlyWiki, I wanted something that was easier for me to set up and run without much configuration. I also wanted a free solution. This is when caught my attention. At the time I started using it, it was already full of great features and was still quite basic compared to what it looks like today. It is wonderful for creating notes, tagging them and searching them. It automatically lets you set up encryption for your data when you want to sync it with a cloud storage service. Some of the features I liked about it:

  • Free
  • Cross-platform
  • Decent formatting
  • Supports LaTeX for writing math notes (very helpful for technical notes)
  • Multi-media support (can attach images, audio files, and videos to your pages)
  • Great Android app support

Joplin is definitely more featureful now than when I used it and looks like it’s constantly being improved. I highly recommend it as an option if you’re not a vim or Emacs user.

Screenshot from the Joplin website, showing its page formatting on both a laptop and a phone

vimwiki

My only gripe with Joplin was that it required me to edit files in its own editor. At the time, I was an avid user of vim and used it to edit nearly all of my documents. It was a little jarring to have to move to a different software to edit my wiki pages. It’s true that Joplin offered vim editing mode, but it was still its own separate program that I had to launch. That extra little bit of resistance made me sometimes miss out on entering some facts into my wiki if I deemed them too simple.

With that mindset, I searched and found , which is a personal wiki for the vim editor. It uses a simple markup language to structure the pages. The greatest advantage it offered me is its tight integration with vim but that came at the price of no multi-media or phone support. A price that I was willing to pay for the convenience of being able to create a wiki page while I was working on something else without having to switch contexts.

Screenshot from the vimwiki project page on Github

org-roam

As I switched from vim to Emacs, I still wanted a wiki system integrated with the program I spent most of my time in. After some searching I settled on , an Emacs clone of Roam Research (see below). This had much better multi-media support and some limited phone support. Its formatting capabilities were also quite nicer than vimwiki. It also supports back links to show which pages in the wiki link to the current page you’re viewing. This is the wiki system I finally settled on and I use it both at home and work. It has very strong support for taking math notes in LaTeX as well as for code formatting. It even lets me execute code snippets and insert the results into the wiki page as content.

A page from my own personal wiki on org-roam showing the back-links in the sidebar. Note the ability to insert code snippets with proper formatting.

Final Note

During all this moving around between software options, the biggest pain point for me was migrating my notes into the format required by the new software. This process could be semi-automated but it was still painful. So the main advice I can give you, whatever software you end up choosing, is to do your experimenting with different options early (before your wiki pages are too many in number) and settle on a choice and stick with it. This way you won’t have to deal with the pain of migrating between systems.

Another advice I have is to find a system that lets you keep your notes in plain text files (as opposed to a proprietary binary format). All the options I listed above fall into this category. This opens many possibilities for automation and searching within your wiki. Right now I’m exploring the option of training a local LLM on my wiki documents so I can interact with my personal knowledge base using natural language.

Other Software Options

Since I do a lot of reading on personal knowledge management, I have also come across several software options in this space. I have never used any of these applications but know others who use and love them. You have to be careful as most of them offer only a limited set of features for free. Here they are in no particular order:

  • : very popular and famous and can be used as a task manager as well
  • : another popular option that lets you view relationships between your different pages
  • : created with researchers in mind and emphasizes the “knowledge graph” where you can see all of your pages and the way they’re linked (org-roam is meant to clone some of its functions in Emacs)
  • : may be the only free option among these and seems to offer a lot of nice features with emphasis on privacy

Concluding Thoughts

Maintaining a personal repository of knowledge has really helped me streamline my workflow and minimize repeated Google searches for things I need to do frequently. It has also made it very easy for me to share my knowledge with my friends and colleagues when they need it. I think it’s essential for researchers and knowledge workers in general to keep such a personal knowledge system and refer to it as needed. I highly encourage you to find a solution that works for you and start creating your own knowledge repository.

No responses yet