A framework for building interactive and responsive websites quickly.

It aims to provide a visual editing interface to create a website and edit its content.

Yet, it can be easily extended by developers as Mouchak supports loading of external CSS and JS files and direct editing of HTML.

Table of Contents


Mouchak has

  • a content repository written in Flask (a Python web micro-framework) and uses MongoDB to store content objects.
  • a content rendering module, written in Backbone.js which renders HTML dynamically.
  • a tagging system to tag contents, and then later which can be pulled to any page specifying a tag.
  • an editing interface, which can be used to edit content, arrange pages, build a custom navigation menu and write Javascript and CSS plugins.

This also makes Mouchak quite extensible. The rendering module, which provides few built-in types to represent HTML elements, image, video, audio etc., can be easily extended to build more custom types.

Mouchak can also load external JS/CSS files. Any magic that can be done using Javascript and CSS can be easily integrated into Mouchak.
Just specify Mouchak the plugin to load and the callback to execute.

Last but not least, Mouchak also supports an internal tagging system. You can tag contents when creating
or editing them. Then related content of a specific tag can be pulled together on demand, through M.filterTags
API in Mouchak.

How to Use



Once downloaded,

Dependencies : You need to have Python and MongoDB
Please use any search engines to find instructions to install Python and MongoDB for your platform. These are quite popular softwares and have comprehensive documentation and active community.

Optional, but strongly recommended : Make sure you have virtualenv installed. It is a Python virtual environment builder, so that we can work in this particular virtual Python environment, and we don’t have to mess with the system-wide Python environment. All library/package installations done in this virtual environment, will be local to this particular environment only. More information here.
Please read the documentation and create a virtualenv before installing Mouchak.

Once you have made sure:

  • you have Python and MongoDB installed,
  • and you have activated a virtual environment, to activate a virtualenv:
      source /path/to/virtualenv/bin/activate
    (see virtualenv docs for more information)

you need to run the script:

     python install

Note : If you have not activated a virtual environment, you would need sudo or root permissions to run the installation


Mouchak as very few configuration parameters like database name etc. The most important being the admin username, admin password and a secret key.
For now, only admin can edit the website, and this username/password will be used to authenticate when editing the website.

All of the sample configuration can be found in

You should create a file, in the same directory as, having all the parameters in and change the values appropriately.


and change values accordingly.


You can navigate to the directory where you have Mouchak, and run the script with Python:

    python mouchak/

This starts the Mouchak server. You can now point your browser to http://localhost:5000/, assuming you are running in the default port 5000.
This will load up and display the website.

To edit the website go to http://localhost:5000/edit and enter the credentials you have setup in the file.

PS: If you are stuck and/or need help, use IRC and hangout and ask in #servelots on freenode.