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.
[3] It is designed for developing single-page web applications,[4] and for keeping various parts of web applications (e.g. multiple clients and the server) synchronized.
When handling the DOM Backbone.js adopts an imperative programming style, in contrast with a declarative programming style (common in AngularJS using data-attributes).
[6] Trying to provide "the minimal set of data-structuring (models and collections) and user interface (views and URLs)",[7] 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.