Boilerplate Application for Chaplin.js
This is a boilerplate application built with Chaplin.js, an application structure on top of Backbone.js.
Running the Example
The original sources are written in CoffeeScript (
coffee/ directory), but this repository
js/ directory). To recompile the CoffeeScripts,
you might run the command line CoffeeScript compiler in the
repository’s root directory:
coffee --bare --output js/ coffee/
This repository also contains a recent build of the Chaplin library in
To run the example, copy the contents of this folder to the document root of your
favorite webserver. If you’re running a local webserver like Apache or Nginx, the URL is
http://localhost/ or similar.
It is necessary that you run the example in a
http:// context. Just opening the
file:// won’t work.
If you don’t have a webserver installed, pushserve
is a suggested HTTP server with simple syntax and HTML5 pushState support.
Install it with nodejs package manager:
npm install -g pushserve and then launch
If the boilerplate is running correctly, you will see a “Hello World!” message.
http://localhost/my-chaplin-app/, you need to configure the Chaplin.Router
accordingly. Open the
application.coffee file and edit
root option accordingly, for example:
this.initRouter routes, root: '/my-chaplin-app/'
Use the CoffeeScript compiler to watch file changes in order to recompile the changed
.coffee source files automatically:
coffee --watch --bare --output js/ coffee/
This example has a standard Chaplin MVC directory structure:
All vendor libraries like jQuery and Backbone are located
There are two special files which are responsible for the application bootstrap:
hello_world_application.coffee is the application root class which inherits from
Chaplin.Application. It starts up all Chaplin core modules and starts the routing. It is loaded and instantiated in
routes.coffee contains all application routes which map URLs to controller actions.
Since Chaplin is template-engine agnostic, you have to decide which templating solution you want to use and how you want to load the templates. This example uses Handlebars templates and loads them on-demand using the RequireJS Text plugin.
Chaplin expects that views implement the
getTemplateFunction method which needs to return the actual templating function. Since all views in this example use the same templating solution,
getTemplateFunction is provided once by two base classes all other views inherit from:
.hbs template files are located in the
To ease the development, this repository also provides application-specific base classes for models, collections and controllers. They inherit from the Chaplin base classes:
coffee/lib/utils.coffee demonstrate how to extend the feature testing and utility files of Chaplin.
Last but not least, this example uses a specific
Layout class which can be found in