Backbone is a JavaScript library that provides structure for JavaScript-heavy applications. It supplies models with key-value binding and custom events, collections with functions to work with enumerables, and views with declarative event handling. Backbone connects applications to existing data over a RESTful JSON interface. It uses Underscore.js, JSON2.js, and either jQuery or Zepto.js. Models contain data and manage changes. Collections are ordered sets of models that handle events from models. Views are logical UI components that bind to model change events to update the interface.