I have spent a long time trying to find the best open source software to collect the knowledge that I have gained, for posterity.  However, after trying multiple available options, such as Tiddly Wiki, Media Wiki, etc. I settled with Wiki.js. I’m not claiming that there isn’t a better solution out there, there must be. My major point of satisfaction with this tool is that it is exactly as I expected my knowledge base to look like.

My reason for using a wiki is to be able to keep a single place for all my study notes, command and code snippets, that I can search, collaborate with others on and publish. It is a knowledge tracker that I can go back to again and again and update or revise the knowledge that I have accumulated. This requirement is easily solved by many note-taking systems such as One Note, Evernote and even Google Drive. The major reason why I didn’t go with those solutions are very specific to each of those systems. One note requires Microsoft machines, whereas I usually work with Ubuntu. Evernote isn’t as great as it was in free mode and Google drive requires a Gmail account for all the collaborators. I needed something that supported Markdown to edit my pages and be able to call it’s data my own, so that even when the service goes down, I don’t loose data.

Let’s look at why Wiki.js works for me. I have hosted wiki.js on Google compute engine (I have 12 months of free trial, so why not!) and the only requirements it has is git, mongodb and nodejs. I work with these technology on almost daily basis, so setting up was a breeze. The most interesting aspect of this system is that it keeps the textual content as .md files on the file system that is a git repository and also allows us to push to a remote repository. This is great on so many levels, since it not only backs up my data automatically to my favourite git repository service provider (bitbucket in this case – since it gives private repos for free), but also can be edited by updating the repos separately via any editor and pushing the changes across to wiki.js. This way, the task of writing the wiki becomes much easier and can be done on any editor. I’m really digging the idea of using git as the backend for versioned storage of files, especially the text files.

There are many other benefits, such as easy of use, administration is intuitive and simplicity is the core of its design. However; there are some cases where wiki.js is rough around the edges, such as the search function is not exactly performing well and neither was I able to get my image uploads to work properly. Although, I do have  a work around for many of such issues, I would love to see wiki.js grow up to be the awesome wiki software that it promises to be.



Home page for wiki.js: https://wiki.js.org/

Github page for wikis.js : https://github.com/Requarks/wiki