Packing Joola with


Joola is a data middleware for building custom analytics applications, written in NodeJS. And they just wrote a great blog post explaining how easy it is to package and distribute a NodeJS app for several distributions using

Also, the rationale behind their decision should be familiar to anyone who has ever wanted to distribute a NodeJS app:

However, while [installing via npm] works well for developers, it's not ideal for users for several reasons:

  • Every time your install Joola, it needs to download and install all the dependencies.
  • Some dependencies require compilation, which may fail.
  • Dependencies have their own life-cycle, so we might have a situation where a user is using a newer dependency package than one we've tested.
  • The installation process can be lengthy if we include the geo-ip dictionary for IP lookups.
  • npm is designed for libraries, so the user ends up with ./node_modules/joola instead of using "proper" system folders.
  • npm installation process does not relate to group, user, directories, permissions etc... creation, so we're quite limited in providing Joola as a service.
  • Users can install the package either globally or locally and we want to have uniformed configuration/logging/etc... folders.

Check out the full blog post !