The open-source data visualization framework

npm install
2 downloads in the last day
3 downloads in the last week
77 downloads in the last month Build Status Coverage Status Gitter chat

Technical Docs Setup Guide SDK Contributing About
i1 i2 i3 i4 i5 logo is a real-time data analytics and visualization framework. Some of the main benefits of using include:

  1. Integrate existing data-sources to correlate, analyze and visualize data.
  2. Stores relevant data in a unique caching layer enabling scalable, rapid response times to queries and requests.
  3. Seamlessly embeddable into existing sites, including single-sign-on and advanced features.

Main Features

  • Big-data, supports distributed caching and processing to cope with big-data needs.
  • Real-time data processing. Display analytics as they arrive.
  • Fast, advanced caching algorithm. Avg. query time of less than a few seconds.
  • Embed quickly, seamlessly integrate with your site.
  • Scalable, run on a single machine or a node-based matrix.
  • Secure, role-based, multi-tenant, data segregation.
  • Extend, easy to add more data sources, authentication and cache middleware.

Getting Started

We've pre-loaded the package with a fully working sample site, so it's easy to get started. uses several leading open-source software for its operation. Before getting started, please install MongoDB, Redis and RabbitMQ, for more details on these pre-requisites please refer to the wiki.

For the example below to work out-of-the-box, it's required to have both and its dependencies installed on localhost. For more details on the installation process, please refer to this guide.

$ npm install -g 
# To connect using CLI
$ jio --host=http://localhost:8080 --apitoken=apitoken-root

Following the installation, point your browser to http://localhost:8080 and you'll be able to use the framework.

Learn more about getting started with

To push your first event
var joolaio = require('');

joolaio.init({host: 'http://localhost:8080', APIToken: 'apitoken-beacon'}, function(err) {
  var doc = {
    timestamp: new Date(),
    attribute: 'I\'m an attribute',
    value: 123
  joolaio.beacon.insert('collection-name', doc, function(err) { 
    console.log('Document saved');

Learn more about pushing data

Your first visualization
    <div id="drawhere">

    <script src="http://localhost:8080/">
    var joolaio = require('');

    joolaio.init({host: 'http://localhost:8080', APIToken: 'apitoken-beacon'}, function(err) {
          container: document.getElementById('drawhere'),
          query: {
              metrics: ['value']

Learn more about analytics and visualizations


We would love to get your help! We have outlined a simple Contribution Policy to support a transparent and easy merging of ideas, code, bug fixes and features.

If you're looking for a place to start, you can always go over the list of open issues, pick one and get started. If you're feeling lost or unsure, just let us know.


Contacting us is easy, ping us on one of these:


Copyright (c) 2012-2014 Joola Smart Solutions. GPLv3 Licensed, see LICENSE for details.

npm loves you