DEV Community

Discussion on: 5 Best Free Note Taking Apps for Programmers

Collapse
 
bimlas profile image
bimlas • Edited

TiddlyWiki

I came from the Vim era: it's a popular text editor, mostly used by technical people. I tried out different ways to store my thoughts, for example: plain text (Asciidoctor) files, Jekyll (blog platform), Boostnote (note taking software). Whenever I tried out new ways, these was my most important requirements:

  • Offline first I don't want to depend on companies - when it's closing its doors, my notes are gone
  • Export my notes easily If I ever want to change to another tool, I want to move my notes into that easily (at least with minimal modifications)
  • The best would be to store as plain text I'm using Git heavily, thus I like to keep my "backups" in a repository - for this job the text format is the best Besides this I can batch modify the notes via Vim
  • Be able to read my notes from everywhere I would like to read my notes from any computer without installing the "editor" itself
  • Be portable It has to work on Linux / Windows (Android is not reuired, but it's good if it works) - the best would be to use exactly the same GUI on every platform
  • Require as few as possible external programs For example compiling Asciidoctor files to HTML require Asciidoctor itself, which is written in Ruby -> needs that too
  • Tag feature My habit is that write a note and add a lot of related tags to it - I don't have to think where to put in the ToC, because I can find anything by tag intersections

Whenever I tried out new stuff, it turned out that it doesn't have some of these features, thus I switched back to old, but good plain text (Asciidoctor) format (because it's the most flexible) + Vim editor (syntax highlighting, search and replace, basic file navigation).

The problem with file based note taking is that

  • You are forced to use hierarchy You have to place your files somewhere in the directory tree, but it's not clear that a note about "NoteTaking" should go in to "TextEditing", "Software", "Practice", because it belongs to all of these "categories"
  • You can drop every note into one directory, but in this case looking for them is hard You can store the tags in the filename and use file searching, but if you want to share your notes with others, he/she will not know what to do
  • Hard to search for tags and tag intersections With regular searching tools (like Grep) you cannot do fuzzy match, but you can search for regex, like "tags:.Software.TextEditing", the disadvantages of this is that you has to store the tags in predefined (maybe alphabetical) order You can use fuzzy file searchers (like FZF or Everything), but you cannot get the list of tags to pick from that
  • Cannot include images and other media types into notes

So I continued searching for The Notetaking Software, then I found TiddlyWiki and fell in love with it, because it knows almost everything that I want, besides this it's incredibly hackable: you can turn it to any kind of software, not just notetaking (todo list, book, GTD, project documentation, family tree, photo gallery with categories and tags, etc.)!

For a better understanding of what is the real power of TiddlyWiki, please read Joe Armstrong: My Eureka Moment with the TiddlyWiki then have a look at these examples:

If you have additional questions, look for the TiddlyWiki mail group, there are very helpful people (seriously, this is the best community I met on the net).

Collapse
 
dorneanu profile image
Victor Dorneanu

Amen! :) Great to see you here as well :) And really awesome sum-up of Tiddlywiki's capabilities.

Collapse
 
talha131 profile image
Talha Mansoor

@bimlas I was going through comments to see if someone has mentioned TW5. Your comment deserves to be a post in itself.

BTW, good to see you here. I use a few of your TW5 plugins.