Mind maps

Since high school I've never had a paper notebook. Don't get me wrong: I'm not one or these people with very good memory and don't need any notes whatsoever. On the contrary.

The thing is I've never seen much value in note taking. At least in the traditional way, with paragraphs and blocks of text. I can't memorize these chunks of text and, if I want to dive deep into a subject, I'm much better off reading text books or browsing Wikipedia articles.

In fact, I've never trusted my own notes. Maybe I got it wrong in the first place. Maybe the way I wrote is ambiguous. Ultimately, the bigger the notes, more likely they can lead me to wrong conclusions.

The need

However, sometimes I want to refresh my memory on a particular subject and reading books and articles is too time consuming. I just want to recap the absolute essential — things I shouldn't forget. Some minimal notes surely would come in handy.

I researched for cheap yet effective note taking methods. I tried Cornell notes but they didn't do the trick for me. Then I tried mind maps and I really liked it.

A typical mind map. Source: mindmapping.com

What I fancy about mind maps is that they are extremely minimalist and favor connection of ideas. It's also possible to adjust the level of details you want to write/read by determining how deep into the nodes you want to dive.

First experience

The first time I used mind maps for real was when I was studying for a software engineering interview in a big tech company.

For an Algorithm question in general you need to know beforehand what's the better strategy for solving it. Should it use a graph? Or a linked list? When faced with such a problem it isn't trivial to know how to solve it but if you ask yourself "would graphs work here?" you generally have an immediate yes/no. A mind map —either in paper or in your brain— with all the possibilities makes things much easier.

The objective

After the good experience I had with mind maps, I decided to digitally register part of my knowledge using this method. Not only about algorithms but also Biology, History, Grammar and all these other fields I barely know a thing.

I established some criteria. The tool for this job should:

  1. have a very low time-wise cost for writing
  2. have basic search functionality
  3. have a way to connect different mind maps
  4. be portable — it should work at least on my PC and my phone

I didn't find any tool that fits these criteria, so I decided to build my own. That said, one additional requirement was:

  1. the tool should be so simple that the time to build it should be at most a few hours — because I'm lazy

This requirement made me reject some complex ideas I had that involved graph databases such as Neo4j.

For writing, I went with the most simple solution possible: an indented plain text document.


The result

After some work, here's what I came up with:

Jumping between nodes and different mind maps is easy!

The UI is smart enough to show any relevant info related to the root node, so the more mind maps you write that include the query, the more data the UI will be able to connect.

Since it uses pretty standard web technologies, it works on my phone without any hiccups.

The UI is fully functional on Chromium-based browsers on Android

I also added buttons to quickly go the dictionary definition or Wikipedia article related to the root node.

Clicking on the globe icon leads to the Wikipedia article that best matches "gauss"

It's hosted on Github Pages so you can try it out here.

The app is capable of downloading mind map definitions from the web so it should work for everyone. Please refer to help section for more info.

Do you have suggestions for this tool? If so please open an issue in its git repo!