Wiki.js: A Modern Open-source Wiki Engine for the Enterprise


Whenever there is a mention of a Wiki, the first thing that always come to thoughts is: Wikipedia.org. So first let's draw a like between Wiki and Wikipedia.

A Wiki is a software that built to ease collaborative writing and editing processes for teams. They are designed with a specific goal to provide productive writing environment for writers and editors, as well as a set of management tools for moderators and managers.

Wikis have been around since the dawn of the modern internet as we knew it, and the most popular Wiki system is MediaWiki which Wikipedia uses.

Over the years we used many wiki engines in work, starting from MediaWiki, DokuWiki, PmWiki, Wikkawiki, and TiddlyWiki. All of them are still popular wiki engines with loyal communities.

However, It's time to see an open-source wiki engine with NodeJS technologies that takes a place among these old school ones.

What's Wiki.js?

There is nothing better to see Wiki.js in action rather than its own documentation 

Wiki.js is a fully customizable and modular wiki engine written entirely in JavaScript.  It comes with a rich set of features, and works smoothly on different systems and environments.

It's also a blazing fast web application, with an eye-candy design, furthermore,  It supports many database interfaces with primary support for PostgreSQL (Note that the other database engines may be dropped in the next major release).

With a developer-friendly tool set, developer can integrate Wiki.js with any existing system as they can build modules, and create custom themes for it.

Wiki.js is a perfect solution for scientists, researchers, business managers,  writers, historians, software developers and technical writers. It's also a polished solution for the enterprise. Here in this article we will explain why.

Why do we like Wiki.js?

1- Fairly easy to use


With a simple user interface, Wiki.js offers a smooth user experience for all team members. It does not require a steep learning curve as it is also provides multiple editing options with its built-in editors: markdown, WYSIWYG, HTML editor, WikiText and excel-like editor for editing spreadsheet-based tubular data.

Wiki.js UI (src)

Structured navigation, admin and manager areas, page actions, search and table of content (ToC) are basic essential features which are packed within a well-structured interface.

2- Full version and revision control

Writers and editors often work with different versions until they reach the file version. Here we come to the most important feature for this wiki engine, a streamlined revision control system to ensure the team productivity.

3- Languages? Wiki.js got you covered.

Here, we are not talking about the user interface's languages support which is already covered with all available languages on the internet. We are talking about the language of the content, which has a nice couple of features:

  1. Multi-lingual content support which means you can have a translated version of the content from primary language to others within the same system.
  2. A full support for RTL languages like: Arabic, Hebrew and Persian.

4- Seamless Media Assets Management

Like all other decent wiki engines, Wiki.js takes a good care of media assets with a simple yet powerful media manager that is built to manage countless images and media files with a smooth workflow that starts from uploading the file until inserting it into the content page.

The media manager features organizing the uploaded assets by creating new assets folder and managing the already created ones.

As search functionality is an essential part of any content management system, a basic full-text functionality is a built-in feature for Wiki.js.

However, some use-cases may require alternative full-text search options like third-party cloud search service, so here comes another killer feature for Wiki.js: full support for Algolia, AWS CloudSearch, Azure Search and Elasticsearch.

In the next versions we may see more search options like Manticore, Solr and Sphinx.

6- Storage

Unlike old classic wiki engines you may see or used over the years which just focuses on the database approach, Wiki.js offers a fixable storage module with full support for content backup and synchronization for multi-vendors like AWS S3, Box.net, DigitalOcean Spaces, Dropbox, Google Drive and Microsoft OneDrive.

The storage module also utilizes Git and SFTP as storage. So far, we didn't see any similar solution.

7- Deployment? Deploy anywhere

With multiple deployment options, this software can be installed with ease and run almost everywhere. It can be installed on Windows server, Linux, macOS, Heroku, and Kubernetes.

Wiki.js is a distinguished item in DigitalOcean marketplace as well as AWS EC2 with an upgradable marketplace image.

Deployment on Azure, IBM Cloud Foundry and Protainer is explained in well-written guides.

8- User management system

src 

A powerful user management system with full user-groups, user permissions and page rules support.  

Global permission can be overridden by private custom permissions.

Creating a new user takes less than a minute.  The new created user can be assigned directly to groups and activated manually.

Using the page rules and permissions, administrators can create a private page or a wiki by denying access from the guests group.

9- Comments

Internal comments module is yet another built-in feature for Wiki.js which it comes with security options to avoid spamming. Although, Internal commenting is enough, the system also supports external commenting systems like Disqus and Commento.


Reasons why Wiki.js should be considered by enterprise users

Why do we recommend Wiki.js for the enterprise, here is why:

  1. Open-source
  2. Modular
  3. Full customizable
  4. Multi-lingual support for the content
  5. RTL languages support
  6. Multiple deployment options
  7. Multiple storage options
  8. Ready to be integrated with the enterprise IAM (Identity and Access Management) system as it supports LDAP, SAML, CAS, AuthO, Okta, Azure authentication with full support for OAyth2 and OpenID.
  9. 2FA: Two-factor authentication
  10. Built-in full-text search support with third-party options.
  11. Scalable
  12. Loyal and large community
  13. Regular updates and upgrades
  14. Wiki.js development team listen to their community

Conclusion

Wiki.js as a modern wiki engine can be a good alternative for the old classical ones we have used over the last decades. It is fairly a good choice for the enterprise and professionals who want to get the things done with less hassle on the technical side.

However, It's not a full replacement for the established online wiki portals and projects with heavy content as there is no enough support or documentation about migration or importing content from other engines.


Resources

  1. Wiki.js: https://wiki.js.org/
  2. Wiki.js GitHub: https://github.com/Requarks/wiki
  3. Wiki.js Documentation: https://docs.requarks.io/

Header photo by Annie Spratt on Unsplash






Hamza Mu Author: Hamza Mu

A physician with programming skills, Linux user since late 1990s, Open source supporter. Coding with Python, NodeJS (Meteor, VueJS, Express, D3, PhantomJS), SmallTalk & R language.





Read more