# jashkenas/backbone

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/jashkenas-backbone).**

28,108 stars · 5,298 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/jashkenas/backbone
- Homepage: http://backbonejs.org
- awesome-repositories: https://awesome-repositories.com/repository/jashkenas-backbone.md

## Description

Backbone is a JavaScript MVC framework and client-side data orchestrator used to structure web applications. It functions as an event-driven UI library and RESTful state manager that synchronizes data models with remote JSON interfaces to maintain consistent application state.

The framework coordinates communication between application components through a decoupled event system. It binds data updates directly to the document object model, ensuring that the user interface remains synchronized with the underlying state.

It provides tools for frontend data organization, allowing developers to manage groups of related data models through collections for bulk operations and filtering. The system also handles DOM event listeners and synchronizes local data with remote servers using a REST API.

## Tags

### Software Engineering & Architecture

- [Model-View-Controller Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/model-view-controller-frameworks.md) — Implements a framework for separating data, presentation, and control logic using the MVC pattern.
- [UI Data Binding](https://awesome-repositories.com/f/software-engineering-architecture/architectural-design-patterns/state-management/reactive-subscription-systems/observer-patterns/ui-data-observers/ui-data-binding.md) — Binds views to models so that interface elements update automatically when data changes. ([source](https://github.com/jashkenas/backbone/blob/master/bower.json))
- [MVC Frameworks](https://awesome-repositories.com/f/software-engineering-architecture/mvc-frameworks.md) — Structures web applications using an architectural pattern that separates data models, views, and control logic.
- [Event-Driven Action Bindings](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/reactive-messaging/reactive-event-driven-systems/event-driven-action-bindings.md) — Triggers specific application logic in response to defined system events or user interactions.

### User Interface & Experience

- [Event-Driven UI Frameworks](https://awesome-repositories.com/f/user-interface-experience/event-driven-ui-frameworks.md) — Coordinates communication between application components using a decoupled event system to trigger automatic UI updates.
- [Component Communication](https://awesome-repositories.com/f/user-interface-experience/component-utilities/ui-frameworks/component-apis/communication-data-flow/component-communication.md) — Facilitates decoupled communication between application components through an event-based system.
- [Event-Driven State Synchronizers](https://awesome-repositories.com/f/user-interface-experience/event-driven-state-managers/event-driven-state-synchronizers.md) — Uses an event-driven system to synchronize model changes with the user interface.
- [Reactive State Syncing](https://awesome-repositories.com/f/user-interface-experience/state-driven-ui-controllers/reactive-state-syncing.md) — Automatically synchronizes a centralized state store with UI components via a REST interface. ([source](https://github.com/jashkenas/backbone/blob/master/README.md))
- [Interaction and Event Handling](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling.md) — Binds event handlers to views to track user actions and update the display. ([source](https://github.com/jashkenas/backbone#readme))
- [Event Handling](https://awesome-repositories.com/f/user-interface-experience/form-and-input-management/interaction-and-event-handling/event-handling-architectures/event-handling.md) — Connects application logic to the DOM through declarative event handling. ([source](https://github.com/jashkenas/backbone/blob/master/README.md))

### Business & Productivity Software

- [Data Collections](https://awesome-repositories.com/f/business-productivity-software/client-side-data-synchronization/data-collections.md) — Provides collections to manage groups of related data models and perform bulk operations across enumerable data sets.
- [Enumerable Model Sets](https://awesome-repositories.com/f/business-productivity-software/group-management/data-model-groups/enumerable-model-sets.md) — Provides collections to group individual data models for bulk operations and efficient filtering.
- [Frontend Model Collections](https://awesome-repositories.com/f/business-productivity-software/group-management/frontend-model-collections.md) — Filters and manages groups of models efficiently using enumerable functions. ([source](https://github.com/jashkenas/backbone#readme))
- [Model Set Operations](https://awesome-repositories.com/f/business-productivity-software/group-management/model-set-operations.md) — Manages groups of models and performs bulk operations across data sets using an enumerable interface. ([source](https://github.com/jashkenas/backbone/blob/master/README.md))

### Data & Databases

- [Application State Management](https://awesome-repositories.com/f/data-databases/application-state-management.md) — Provides systems for managing and synchronizing application-wide state using models. ([source](https://github.com/jashkenas/backbone#readme))
- [Client-Side Data Models](https://awesome-repositories.com/f/data-databases/custom-data-models/client-side-data-models.md) — Binds data using key-value pairs and triggers events to synchronize state across the application. ([source](https://github.com/jashkenas/backbone/blob/master/README.md))
- [Data Integration & Synchronization](https://awesome-repositories.com/f/data-databases/data-integration-synchronization.md) — Synchronizes local data models with a remote server over a JSON interface. ([source](https://github.com/jashkenas/backbone#readme))
- [In-Memory State Maps](https://awesome-repositories.com/f/data-databases/key-value-stores/in-memory-state-maps.md) — Stores application state in simple object maps for fast retrieval and attribute tracking.

### Web Development

- [Frontend Data Organization](https://awesome-repositories.com/f/web-development/frontend-data-organization.md) — Manages sets of related data models through collections for bulk operations and filtering within a browser.
- [Browser-Side State Management](https://awesome-repositories.com/f/web-development/hydration-state-management/browser-side-state-management.md) — Organizes application data and logic within the browser to keep the UI synchronized.
- [REST APIs](https://awesome-repositories.com/f/web-development/rest-apis.md) — Implements a RESTful persistence layer to synchronize local data models with a remote JSON interface using standard HTTP methods.
- [RESTful Persistence Layers](https://awesome-repositories.com/f/web-development/restful-persistence-layers.md) — Maps model operations directly to HTTP methods to synchronize local state with a remote JSON API.
- [DOM & Event Handling](https://awesome-repositories.com/f/web-development/browser-integration-utilities/dom-event-handling.md) — Connects UI elements to application logic via DOM event handling and view management.
- [Client-Side State Synchronizers](https://awesome-repositories.com/f/web-development/server-side-frameworks/reactive-frameworks/client-side-state-synchronizers.md) — Synchronizes client-side data models with a remote server via a JSON interface to maintain consistent application state.

### Part of an Awesome List

- [Web Frameworks](https://awesome-repositories.com/f/awesome-lists/devtools/web-frameworks.md) — Give your JS App some Backbone with Models, Views, Collections, and Events.
