Fighting Crime and Kicking Apps
CoffeeScript JavaScript CSS
Pull request Compare This branch is 557 commits behind batmanjs:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


batman.js is a framework for building rich single-page browser applications. It is written in CoffeeScript and its API is developed with CoffeeScript in mind, but of course you can use regular JavaScript too.

It's got:

  • a stateful MVC architecture
  • a powerful 2-way data binding system
  • routable controller actions
  • pure HTML views
  • toolchain support built on Node.js and cake

The APIs are heavily inspired by Rails and are designed to make Rails devs feel right at home.

To find out more or get started with batman.js, check out the website:

Contributing Build Status

Well-tested contributions are always welcome! Here's what you should do:

1. Clone the repo

git clone

2. Install dependencies using NPM

npm install

If you don't already have Node.js, the installation instructions are here.

3. Run the tests

batman.js uses karma and QUnit for orchestrating tests.

To run the tests, run the following command from the project root:

cake test

Assuming you have Chrome installed, it should automatically open and start running the tests. The test outcome will appear in your terminal.

4. Write some test-driven code

The tests are in tests/batman. All test files in there are automatically picked up and run.

5. Update the documentation

The API documentation is written using literate CoffeeScript.

The API documentation includes its own set of tests, which serves as both an assurance that the API hasn't broken, as well as a set of examples for how to use it. These tests need not be comprehensive (that's what the regular tests are for), but should cover the most common use cases. They're automatically run alongside the regular tests, so you don't need to run them manually.

If you want to render the API docs, see the README for

Please read the README for the docs before writing any.

6. Create a pull request

If it's good code that fits with the goals of the project, we'll merge it in!

Compiling the library

To generate the JavaScript representation of batman.js, cake tasks are provided for compiling the CoffeeScript sources. After an npm install, the following tasks are available:

  • cake build: compile the library to /build/
  • cake build:dist: compile the library to /build/dist/, remove calls to Batman.developer, and minify the output
  • cake --dist build: perform both of the previous tasks


batman.js is copyright 2013 by Shopify, released under the MIT License (see LICENSE for details).