Based on Backbone.js and Sinatra