Skip to content
This repository has been archived by the owner on Mar 12, 2019. It is now read-only.


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?

Latest commit


Git stats


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


Koalab is a board for brainstorming, Scrum or managing your family chores.

It's powered by nginx, nodejs, mongodb, grunt, backbone and html5. It takes profit of the most advanced features of html5, thus you should only use it with a modern browser like Mozilla Firefox or Google Chrome.


You can try Koalab on

Our board


On koalab, you can:

  • Login with Mozilla Persona (was BrowserID)
  • Create a board
  • Show a board
  • Add post-its on it: blue, green, rose or yellow, it's your choice
  • Edit in place the title of a post-it
  • Move post-its with drag'n'drop
  • Resize post-its
  • Add some lines to cluster post-its

And our killer features are:

  • A very cute logo <3 <3 <3
  • When a post-it is moved or edited, it's brought on top of the other post-its.
  • The font size of post-its is automatically adjusted to avoid its text to overflow.
  • And it's real-time! When a user does something, it's reflected almost instantaneously on the browsers of the participants of this board!

How to run it in local?

Install Git, NodeJS, MongoDB, Grunt and run these commands:

git clone
cd koalab
cp config/server.json.example config/server.json
$EDITOR config/server.json
npm install -g grunt-cli
npm install .
bower install
node koalab.js
firefox http://localhost:8080/

And for production?

In production, we are using:

  • nginx (you can find an example of the vhost config in the config/nginx directory)
  • forever (npm install forever -g on the server)
  • and mina for deployments.

And for heroku?

  • Add config/server.json to git (in a dedicated heroku branch if you want).

    • Don't forget to set the persona audience value to your heroku app url.
    • Mongodb part is not necessary.
  • Add an heroku buildpack for grunt :

heroku config:add BUILDPACK_URL=
  • Add a mongodb provider
heroku addons:add mongolab

for mongolab or for mongohq

heroku addons:add mongohq
  • Deploy on heroku
git push heroku master
  • Enjoy!


The config/server.json file contains some configuration entries:

  • authorized is an array with the list of email addresses than can access this koalab instance. * can be used as a joker to match one or more characters: * will authorized everybody whose email address has as domain.
  • port is the TCP port the node will listen to.
  • persona.audience is the public hostname and port of the website.
  • mongodb is the database informations.

JavaScript Code Analysis

Plato can be used to generate two reports on the JavaScript Code Analysis (back and front):

grunt plato
$BROWER reports/back/index.html
$BROWER reports/front/index.html


The logo is the copyright of Charlotte Schimdt and can be distributed and used for personal purpose.

Copyright (c) 2012 af83

Released under the MIT license