Backbone.js
Javascript library
Backbone.js is a JavaScript rich-client web app framework based on the model-view-controller design paradigm, intended to connect to an API over a RESTful JSON interface. Backbone has only hard dependency, which is on one JavaScript library, Underscore.js,. jQuery can also be optionally used for the library. It is designed for developing single-page web applications, and for keeping various parts of web applications (e.g. multiple clients and the server) synchronized. Backbone was created by Jeremy Ashkenas, who is also known for CoffeeScript and Underscore.js.
When handling the DOM Backbone.js adopts an imperative programming style, in contrast with a declarative programming style (common in AngularJS using data-attributes). Trying to provide "the minimal set of data-structuring (models and collections) and user interface (views and URLs)", leaves to the developer the choice of extensions for enhanced functionality. For example, one can use nested views with Backbone Layout Manager or model-view binding with ReSTbasis.
01History
Backbone.js was created by Jeremy Ashkenas, who is also known for developing CoffeeScript and Underscore.js. The library was first released on October 13, 2010, and was designed to provide a minimal set of data-structuring (models and collections) and user interface (views and URLs) to JavaScript developers building single-page applications.
Backbone.js gained popularity during the early 2010s as a foundational framework for building structured client-side web applications, preceding the later rise of frameworks like React and Angular. While adoption of newer frameworks has increased since 2015, Backbone remains maintained for its large existing user base.
The project has continued to receive updates focused on stability and compatibility. Version 1.6.0 was released in February 2024, and version 1.6.1 followed on April 1, 2025.
02Architecture and design
Backbone.js implements the Model-view-controller (MVC) pattern with three core components: Models, which represent data; Views, which handle user interface rendering; and Collections, which manage sets of related models. The library has only one hard dependency: Underscore.js. jQuery can optionally be used for DOM manipulation and utilities.
At only 7.9 KB minified and gzipped, Backbone.js provides developers with a lightweight alternative to heavier frameworks when implementing MVC patterns in the browser. The library's minimalist philosophy emphasizes developer flexibility over prescriptive conventions.
03Comparison with other frameworks
Unlike AngularJS, which uses a declarative programming style with data-binding through HTML attributes, Backbone.js adopts an imperative programming style requiring more explicit event handling and DOM manipulation. This design choice reflects Backbone's philosophy of providing structure without imposing a rigid framework.
Later frameworks such as React, Vue.js, and Angular have become more prevalent, though Backbone.js continues to be maintained and is still used in production by several large organizations.
04Use
The following web applications are built with Backbone.js:
- 500px Web
- Airbnb
- Diaspora
- Digg
- DocumentCloud
- Drupal 8
- Groupon Now
- Hulu
- NewsBlur
- Nextcloud
- Openbravo Mobile (with Enyo).
- Pandora Radio
- SoundCloud
- Trello
- USA Today.com
- WordPress.com
- verizon.com
- xTuple (with Enyo).
Sources and credits
This article is adapted from the Wikipedia article “Backbone.js”, written by its contributors and licensed under CC BY-SA 4.0. Fathomly has changed the layout, removed citation markers, navigation and maintenance notices, and adjusted punctuation. This adapted version is shared under the same license. For references, see the original article.
Fathomly is not affiliated with or endorsed by the Wikimedia Foundation. Spotted a problem? Tell us.