The following is a segment from the first in (hopefully) a series of training pieces written in the form of annotated source code. This is an experimental educational medium for me, and one that I’m enjoying a lot, despite it taking quite a bit of effort to produce. It seems fitting that Backbone would be the first topic to cover in this way, since the format was created by the people at DocumentCloud, who created Backbone and Underscore.

You can find the complete guide at


Backbone is a JavaScript library that provides various tools to assist in the organization of front-end programming code. It provides constructs for structuring your code into distinct data models, presentational views and execution controllers. This organizational pattern is referred to commonly as MVC.

Backbone meets the Wikipedia definition of a Software Framework:

  • It provides Inversion of Control by way of a mediator/observer system for inter-module communication
  • It provides default behavior which you may lean on or completely ignore
  • It is full extensible by way of overriding publicly exposed components
  • It need not be modified itself to perform its duties.

Backbone does not, however, dictate how you organize your files, how those files are loaded onto the page, or what other libraries you wish to use in conjunction with Backbone. Backbone does not require exclusivity and can be used alongside any other frameworks. Backbone is un-opinionated about how much of its toolset you take advantage of.

Backbone is a client-side front-end framework. While some of its pieces can be used in Node.js, it is designed for use in the browser.

Read More…