diff --git a/dev_virtualenv b/dev_virtualenv
new file mode 100644
index 0000000..a278347
--- /dev/null
+++ b/dev_virtualenv
@@ -0,0 +1,89 @@
+# This file must be used with "source dev_virtualenv" *from bash*
+# you cannot run it directly
+
+deactivate () {
+    unset pydoc
+
+    # reset old environment variables
+    if [ -n "$_OLD_VIRTUAL_PATH" ] ; then
+        PATH="$_OLD_VIRTUAL_PATH"
+        export PATH
+        unset _OLD_VIRTUAL_PATH
+    fi
+    if [ -n "$_OLD_VIRTUAL_PYTHONHOME" ] ; then
+        PYTHONHOME="$_OLD_VIRTUAL_PYTHONHOME"
+        export PYTHONHOME
+        unset _OLD_VIRTUAL_PYTHONHOME
+    fi
+
+    # This should detect bash and zsh, which have a hash command that must
+    # be called to get it to forget past commands.  Without forgetting
+    # past commands the $PATH changes we made may not be respected
+    if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then
+        hash -r 2>/dev/null
+    fi
+
+    if [ -n "$_OLD_VIRTUAL_PS1" ] ; then
+        PS1="$_OLD_VIRTUAL_PS1"
+        export PS1
+        unset _OLD_VIRTUAL_PS1
+    fi
+
+    unset VIRTUAL_ENV
+    if [ ! "$1" = "nondestructive" ] ; then
+    # Self destruct!
+        unset -f deactivate
+    fi
+}
+
+# unset irrelevant variables
+deactivate nondestructive
+
+
+current_dir="$(cd "$(dirname "$BASH_SOURCE")"; pwd)"
+node_dir=${mydir}/node_modules
+
+VIRTUAL_ENV=$current_dir
+export VIRTUAL_ENV
+_OLD_VIRTUAL_PATH="$PATH"
+
+# Change path
+PATH="$VIRTUAL_ENV/bin:$PATH"
+for node_module in $node_dir/*
+do
+    PATH="${node_module}/bin:$PATH"
+done
+
+
+export PATH
+
+# unset PYTHONHOME if set
+# this will fail if PYTHONHOME is set to the empty string (which is bad anyway)
+# could use `if (set -u; : $PYTHONHOME) ;` in bash
+if [ -n "$PYTHONHOME" ] ; then
+    _OLD_VIRTUAL_PYTHONHOME="$PYTHONHOME"
+    unset PYTHONHOME
+fi
+
+if [ -z "$VIRTUAL_ENV_DISABLE_PROMPT" ] ; then
+    _OLD_VIRTUAL_PS1="$PS1"
+    if [ "x" != x ] ; then
+        PS1="$PS1"
+    else
+    if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then
+        # special case for Aspen magic directories
+        # see http://www.zetadev.com/software/aspen/
+        PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1"
+    else
+        PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1"
+    fi
+    fi
+    export PS1
+fi
+
+# This should detect bash and zsh, which have a hash command that must
+# be called to get it to forget past commands.  Without forgetting
+# past commands the $PATH changes we made may not be respected
+if [ -n "$BASH" -o -n "$ZSH_VERSION" ] ; then
+    hash -r 2>/dev/null
+fi
diff --git a/readme.rst b/readme.rst
index b7b458b..96643b6 100644
--- a/readme.rst
+++ b/readme.rst
@@ -13,19 +13,17 @@ Installation
     git clone https://github.com/titilambert/adagios-frontend.git
     cd adagios-frontend
     npm install
-    npm install grunt-cli
     gem install sass
 
 
 Dev
 ===
 
-You must leave grunt running in the background to automatically compile css
-and minify/compress js files when source code changes
+Load our dev virtualenv :
 
 ::
 
-    grunt
+    source dev_virtualenv
 
 To compile css files run :
 
@@ -48,9 +46,18 @@ you already have docker installed) :
     make daemon
     curl http://localhost:8080/app
 
+You must leave grunt running in the background to automatically compile css
+and minify/compress js files when source code changes
+
+::
+
+    grunt
+
+
+
 
 Coding style
-===========
+============
 
 This project conforms to JSLint coding style (http://github.com/douglascrockford/JSLint).
 Run the linter as follows: