Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

Q Server

Maintainer: Franco Gervasi

Q is a system that lets journalists create visual elements for stories. It is developed by NZZ Editorial Tech and NZZ Visuals and used in the NZZ newsroom. There is a Demo over here:

This is the server for the Q Toolbox. To make use of Q server you will also need a Q editor.



git clone
cd Q-server
nvm use
npm install

For testing local changes of Q-server, one can link the local package to the global installation of Q-server:

cd Q-server
npm link

Next, in some other location, the following command will create a symbolic link from globally-installed Q-server to node_modules/ of the current folder.

cd some-other-location
npm link @nzz/q-server

Note: Q-server uses joi. If the other location, where you linked the Q-server to, uses joi as well, make sure they have the exact same version.

To unlink, simply install Q-server again globally:

npm install @nzz/q-server -g


There is a 100% coverage aim with the tests. Please do not lower the coverage. The tests use pouchdb-server to mock the database and implement a simple mock tool endpoint. This makes e2e testing completely self contained without the need for any external services running. Just do a npm install and then npm run test and you are good to go. There are e2e tests in test/e2e-tests.js and some unit tests in test/unit-tests.js.


Copyright (c) 2019 Neue Zürcher Zeitung. All rights reserved.

This software is published under the MIT license.