Matterwiki is a free, open source collaboration & communication project written in JavaScript and released under MIT. It has 2,093 GitHub stars, 174 forks and 51 open issues, and was last pushed 6 months ago. On this registry it ranks #34 of 62 tracked projects in Collaboration & Communication, with 5 head-to-head comparisons available.

What is Matterwiki?

Matterwiki is a simple, free wiki for small teams that need a lightweight place to store and collaborate on internal knowledge, built in JavaScript with a Node.js API and a React front-end.

What it is

Matterwiki is open-source wiki software released under the MIT licence, aimed at teams that want to capture documentation, notes, culture guidelines and onboarding content in one organised place. Under the hood it runs a Node.js API with a React.js front-end, and it stores its data by default in Sqlite, with MySQL available as an alternative. It lives squarely in the JavaScript and Node ecosystem, and its topics list reads as a straightforward self-hosted wiki engine built for collaboration and knowledge bases rather than for heavy enterprise knowledge management.

The concrete problem it solves is knowledge drift inside growing companies. As a team expands, it becomes difficult to keep track of everything the team knows, to communicate company policies to new members, and to keep discussions in context; the project's own framing notes that things get lost in Slack channels. Matterwiki replaces the overly complicated wiki products that small teams tend to abandon, and it replaces scattered chat history as the place where durable knowledge lives. Every article is filed under a topic so that content stays organised across departments, and every change is transparent, showing who edited which document and when.

Key capabilities

  • Files every article under a topic, keeping content organised among departments.
  • Records who made what changes to which document, and when, so history stays transparent.
  • Stores data by default in Sqlite at ./db/matterwiki.sqlite, with MySQL 5.6.5 or above available as a more concurrent option.
  • Switches databases by editing the db object in knexfile.js, since Knex is used as the query builder.
  • Ships an admin dashboard for creating topics and adding users, reached after account setup at yoururl.com/#/setup.
  • Runs under Docker with docker build -t matterwiki . followed by docker run --name=matterwiki -p 5000:5000 matterwiki.
  • Boots a production build with npm start, or runs as a background service with NODE_ENV=production PORT=8000 pm2 start index.js --name "matterwiki".

Who uses it and how

  • Small teams that find mainstream wiki software too complicated and want a single simple place for shared knowledge.
  • Departments that file their documentation and notes under topics so colleagues can find them in context.
  • Teams writing employee onboarding content and culture guidelines that need to be readable by new members.
  • Self-hosters running the app themselves on Node 7 or above, either directly, behind a process manager such as PM2, or as a Docker container.
  • Administrators who set up the first admin account, then create topics and add users from the admin dashboard.

Getting started

Clone the repository, run npm install, set the auth_secret value in config.js, then run npm run build and start the app with npm start or under PM2. A Docker path is also documented, using docker build -t matterwiki . and docker run --name=matterwiki -p 5000:5000 matterwiki.

How it compares

No comparable products are named in the facts provided for this entry, so Matterwiki stands alone in this registry. It should be read as a self-hosted alternative in its own right rather than as a substitute for a specific competing product.

When to use it — and when not to

A self-hoster must operate a Node.js application and either Sqlite or a MySQL server, and must keep the auth_secret in config.js safe and private, since that phrase encodes and decodes access tokens. Teams that need a fully stable, finished product should look elsewhere for now: the README carries a warning that things may be broken while a stable v0.3.0 release is in progress, and it suggests waiting until that work is complete, with the next version visible only on the v0.3.0 and refactor branches. Anyone unwilling to run and maintain their own server and database should not pick it, and the warning banner means it is best suited to teams that can tolerate occasional breakage during development.

project readme (upstream, from github) — read inline

:warning: Warning

Expect some things to be broken as we're actively working on a stable v0.3.0 release. Although the master branch is expected to work fine, we'd suggest you to wait until everything is completed.

If you'd like to help, drop in on any of the issues or pull requests, or email one of

  • na[dot]nishantarora[at]gmail[dot]com
  • hpkrishna07[at]gmail[dot]com

You can also get a preview of the next version on the v0.3.0/refactor branches


What is a wiki?

A website or database developed collaboratively by a community of users, allowing any user to add and edit content. Example: Wikipedia

Why do you need a wiki?

As your company grows it becomes difficult to keep track of all the knowledge in your team. It is difficult to communicate every detail about the company policies to new team members. Things get lost in Slack channels. It becomes difficult to keep things in context.

A wiki helps you keep track of all this information. Every article is filed under a topic to keep things organised among departments. Everything is transparent, who made what changes to which document and when.

Why Matterwiki?

Wiki softwares are too complicated for small teams. Matterwiki is just that, a simple wiki for teams to store and collaborate on knowledge. People use it to store documentation, notes, culture guidelines, employee onboarding content and everything else they want to.

Setup Instructions:

You need to have Node (version 7 or above) and npm installed on your system.

  1. Clone this repository git clone http://github.com/matterwiki/matterwiki
  2. Run npm install
  3. Edit config.js (present in the project root) and change the auth_secret value with any secret phrase. NOTE: This phrase will be used to encode and decode your access tokens. Keep it safe and private
  4. run npm run build
  5. At this point, running this with a process manager like PM2 would ensure that this is a background process and doesn't die out. A sample way of starting the app would be:
NODE_ENV=production PORT=8000 pm2 start index.js --name "matterwiki"

Some points to note here :

  • NODE_ENV could take one of these two values, dev or production.
  • PORT is optional. If it is not specified, then 5000 would be used.

However, if you do not need all this, running npm start should boot up the production build of the app. 6. Head to yoururl.com/#/setup and create the Admin account.

Replace yoururl.com with your URL. If you're running locally, replace with localhost:5000 7. Login with your new admin account and head to the Admin dashboard. 8. Create topics and add users to your Wiki.

NOTE - Using MySQL


By default Matterwiki uses **Sqlite**, which is a lightweight database management system perfect for an internal wiki. If your team size is huge and you need a concurrent and flexible DBMS you can change the config to use **MySQL**. As we use `Knex` as a query builder all you have to do use MySQL is to change the db object in `knexfile.js` (found the app root directory). Using MySQL requires MySQL 5.6.5 as a minimum.
  1. First setup MySQL

  2. Install mysql from npm

    npm install mysql
    
  3. Change the object from

module.exports = {
  client: 'sqlite3',
  connection: {
    filename: "./db/matterwiki.sqlite"
  },
  useNullAsDefault: true
}

to

module.exports = {
  client: 'mysql',
  connection: {
    host : '127.0.0.1',
    user : 'your_database_user',
    password : 'your_database_password',
    database : 'myapp_test'
  },
  useNullAsDefault: true
}

Run with Docker:

You can run MatterWiki with Docker.

  1. Clone this repository git clone http://github.com/matterwiki/matterwiki
  2. Run docker build -t matterwiki .
  3. Start a docker container with docker run --name=matterwiki -p 5000:5000 matterwiki

You can add -v //db:/server/db to store the db on the host filesystem, and -v //config.js:/server/config.js to specify your own JWT secret configuration. Add --restart=always -d options to run it as a daemon.

Under the hood

Matterwiki uses a Node.js API with a React.js front-end and Sqlite3 for the database.

As the app is built atop a JSON API, it is simple to integrate your Wiki with your mobile app or blog. For more, read the API documentation.

Like it?

:star: this repo

Found a bug?

Raise an issue!

Want to contribute?

We welcome all kinds of contributions. It doesn't matter if it's a grammar fix, or some refactoring, or an even an entire UI overhaul. So help us improve Matterwiki for everyone. Take a look at our contributing document for understanding local development setup and the code base.

Feature requests?

Before you create a new feature request please check our public roadmap for the v0.3.0 release. It lists the features we're currently working on. The issues tagged with the backlog label are next in line.

  • If you see we're already working on your feature, head to the issue relating to that and give a thumbs up.
  • If your feature is something that hasn't been requested yet, please create an issue.

Screenshots





Prior art

If you want to explore alternatives here are some other Wikis we love.

We're also referring to them for inspiration as we go along.

  1. Tettra, another simple wiki (comes with Slack integration) [PAID].
  2. Jingo, another Node.js based Wiki based on Git.
  3. MediaWiki, the code that powers Wikipedia.
  4. Dokuwiki, simple text file based wiki

Frequently asked questions

Is Matterwiki free to use?

Matterwiki is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does Matterwiki do?

A simple and beautiful wiki for teams

What is Matterwiki written in?

Matterwiki is primarily written in JavaScript. Its source is publicly available at https://github.com/Matterwiki/Matterwiki, and it has 2,093 GitHub stars.