Skip to content

Extensions, Plugins, Resources

michael-lefebvre edited this page Feb 6, 2013 · 141 revisions

Dependencies

Underscore.js

Backbone's only hard dependency. http://underscorejs.org

JSON2.js

Needed if you'd like to parse and serialize JSON in older browsers (read: "Internet Explorer") https://github.com/douglascrockford/JSON-js

jQuery

Recommended for DOM manipulation and Ajax. http://jquery.com

Zepto

Recommended as a jQuery alternative for mobile apps http://zeptojs.com

Model

Backbone Forms

Generate customisable forms from your model schema. Features include custom editors, nested forms, editable lists and validation.

backbone-deep-model

Improved support for models with nested attributes. Get and set attributes and listen to changes on them using a path, e.g. get('user.address.ln1').

Backbone-Nested

A plugin to make Backbone keep track of nested attributes.

Backbone.Memento

Create undo points to store / restore your model's state.

Get the code and read the documentation:

Backbone.actAs.Mementoable

Memento pattern realization for Backbone.js models with more flexible API than in Backbone.Memento

Backbone.actAs.Configurable

Simple helpers to configure your models from one configuration object.

Backbone.Articulation

Backbone.Validations

Backbone.Validation

Backbone.Validator

backbone-view-model

Backbone.ModelRef

  • Lets you build your views while you wait for models to load.
  • Notifies you when a model unloads so you can change your view state.
  • Compatible with Knockback.js (https://github.com/kmalakoff/knockback)

Pretty much just a collection and model id reference. Simple, but useful.

workflow.js

Backbone Dotattr

Backbone.Mutators

Backbone.Chosen

Backbone fetch cache

Storage

Backbone.localStorage

backbone.couchdb.js

Backbone.ioBind

Backbone-websql

Backbone-slet

Backbone.SharePoint

Backbone.SAP

Backbone.Offline

Backbone.Rpc

Backbone.Safe

Relations

Backbone-relational

Backbone-associations

Backbone.Rel

Ligament

backbone-orm

Collection

backbone-pageable

A pageable, drop-in replacement for Backbone.Collection. Supports client-side and server-side pagination, single page and global sorting, and client-side bi-directional event handling. Inspired by Backbone.Paginator, but much better.

backbone-cappedcollection

Capped Collections for BackboneJS.

Backbone.actAs.Paginatable

Load your collections piece by piece. Very useful for large model sets.

Nesting.js

Simple helper function that makes it easy to work with nested Backbone collections

Backbone.CollectionSubset

Create subsets of collections using filter functions that automatically update allowing you to create a tree of collections that is always in sync.

Backbone Query

Provides NoSQL queries (like MongoDB) for backbone.js collections

Query Engine

Provides extensive querying, filtering, and searching functionality for backbone.js collections

  • includes live interactive demo
  • source-code documentation only
  • runs on node.js and in the browser
  • supports NoSQL queries (like MongoDB)
  • supports filters (applying a filter function to a collection)
  • supports search strings (useful for turning search input fields into useful queries)
  • supports pills for search strings (e.g. author:ben priority:important)
  • supports optional live collections (when a model is changed, added or removed, it can automatically be tested against the collections queries, filters, and search string, if it fails, remove it from the collection)
  • supports parent and child collections (when a parent collection has a model removed, it is removed from the child collection too, when a parent collection has a model added or changed, it is retested against the child collection)
  • https://github.com/bevry/query-engine

Backbone fetch cache

View

LayoutManager

Backbone.ViewEvents

An alternative Events implementation for the Backbone.View which provides events which bubble up through a view hierarchy while the latter is inferred from the DOM and the views' position in it.

Backbone.Courier

Easily bubble events up your view hierarchy.

Backbone.Subviews

A minimalist view mixin for creating and managing subviews in your Backbone.js applications.

Backbone.Stickit

Model-View binding in Backbone style.

Yabbe (Yet Another Backbone Binding Exension)

Synapse

Backbone.ModelBinder.js

Simple, flexible and powerful bidirectional view-model binding for backbone. A javascript only solution (no markup in html) that relies on jQuery delegates for binding. Similar to how backbone view event blocks work.

  • Handles partial view binding, nested views, formatting, type conversion, arbitrary html attributes and most html element types.
  • JS Weekly Article
  • Git

Backbone Bindings

Bi-directional bindings between Backbone.View elements and Backbone.Model attributes.

Backbone.ModelBinding

Awesome model binding between models and form input elements, and more

  • KnockoutJS-style data-bind attribute support
  • Bind form fields to models and vice-versa
  • Convention based
  • Pluggable with your own conventions
  • Extensible to bind to more than just form input elements

Get the code and read the documentation:

Knockback.js

Knockout bindings for Backbone.js models and collections.

Backbone on the Couch

A little plugin for use in leanback apps, where someone is sat on the couch using a remote control to use your app.

ProxyDollar

Plugin that proxies jQuery/Zepto/$ functions for Backbone Views.

Backbone.declarative

A small plugin that adds declarative model and collection event binding to Backbone Views.

outback.js

KnockoutJS-inspired declarative binding solution for Backbone Views.

  • KnockoutJS-compatible binding handler API
  • Explicit control over dependencies (e.g. cascading select boxes)
  • Unobtrusive (i.e. code-based) and declarative (i.e. markup-based) configuration
  • Multiple binding contexts for separating transient and persistent models.
  • Tests, TodosMVC, and examples.
  • https://github.com/politician/outback

Backbone.BindTo

Extension for automatic binding and unbinding of model events to views. It defines two special view attributes - bindToModel and bindToCollection. They are handled similar to events attribute, but instead of binding to dom events they bind to model/collection. Also this plugin takes care of cleaning events after the view is removed.

https://github.com/RStankov/backbone-bind-to

Backbone.PluginView

Make jQuery plugins from your Backbone Views.

Backbone.ViewKit

View management and transitions geared toward mobile applications.

Backbone.ViewDSL

http://andreypopp.github.com/backbone.viewdsl/ or install via bower bower install backbone.viewdsl

Backbone.ViewDSL is a tiny library which provides a DSL for defining Backbone.View hierarchies. If you are tired of manually composing views in your Backbone application and want to get rid of all accompanying boilerplate then this library could help a bit.

Backbone.ViewDSL provides a DSL built on top of HTML with the following features:

  • view instantiation (optionally loaded from AMD modules)
  • conditional exclusion of DOM elements from a final result
  • string and DOM node values interpolation

backbone.managedview

It is an extension for Backbone.View, which adds views management logic and structure. It's common for a view to have multiple subviews, but in Backbone.View managing subviews has to be done manually. This extension manages rendering a view and its subviews. When a view is removed, this extension also manages the subviews removal.

https://github.com/steverandy/backbone.managedview

Templates

Backrub

Helpers

Builder (DOM Builder for Backbone Views)

Events

Namespaced Events

jQuery style namespacing (http://docs.jquery.com/Namespaced_Events) of Backbone's Events object

Widgets

Backgrid

A semantic, easily stylable, light weight and yet extremely flexible set of widgets for building data grids.

Slickback (integration with SlickGrid)

bbGrid

That's an extendable grid system (jqGrid like) developed on Backbone, Twitter Bootstrap and jQuery.

Vienna IKS Editables

Backbone.Aura

Backbone.Aura is a decoupled, event-driven architecture on top of Backbone.js for developing widget-based applications

Routing

jQuery Mobile Routing

Before/After Filters

Query Parameters

AppRouter

Frameworks

Backbone Boilerplate

Backbone.CQRS

Capt by Ben Nolan

Chaplin

  • https://github.com/chaplinjs/chaplin - An opinionated, full-featured architecture framework for creating complex single-page applications with a strong emphasis on memory management and class heirarchies. Includes a powerful CollectionView class, rails-style routing with proper params hash, and controller patterns.

Backbone.Marionette

Make your BackboneJS apps dance with a composite application structure!

Mixin.js

  • Provides mixin classes for a local collections (not stored on a server) and for mixing Backbone.Events into any class (including a check if they are mixed-in).
  • Provides a facility to use Backbone.Events trigger('destroy') to do memory cleanup instead of a destroy method (event-based instance life-cycles).
  • https://github.com/kmalakoff/mixin

Backbone Module (Module loader for Backbone apps)

  • Not a JS loader like require.js, but a way to structure your code in big Backbone app projects.
  • Load JS without worrying about load sequence and dependencies between modules.
  • Source: https://github.com/juggy/backbone-module

Singool.js

Backbone-Traversal

Backbone.Brace

Other

Backbone.Analytics: Drop-In Google Analytics For Backbone's Router

Backbone-Callbacks: Node.js style callbacks for asynchronous methods

Backbone.jFeed: RSS/ATOM Feeds For Collections

Cleaning Up And Preventing Memory Leaks With Your Views

Thingy-Client

Backbone (adapted for MooTools)

Backbone-Factory

Backbone.StateMachine

Backbone-FSM

Backbone.Shortcuts

Brunch

  • http://brunch.io - provides a powerful, rails-like directory structure and a powerful, extensible set of component generators (for working with Jade, handlebars, sass, less, stylus, etc.)

Backbone Tastypie

  • Modifications to Backbone's Model an Collection so that they play nice with django-tastypie. Includes a way to easily paginate over a resource list and a way to access the associated meta information.
  • https://github.com/amccloud/backbone-tastypie

Backbone Interface

  • Errors are thrown when Backbone instance does not have all the required methods of the interface.
  • Better organized code. Keep your interfaces separate, with comments - a well-documented reference point for the methods in your Models, Collections, Views, and Routers. (Not for production).
  • https://github.com/luke-siedle/backbone-interface

Backbone.Service

Backbone.GoogleMaps

Grunt Init Backbone Plugin