A pragmatic guide to Backbone.js apps