Picplum Tech Stack - Backbone, Async Uploads, Prints API
speakerdeck.com
speakerdeck.com
It will be streamed live http://fluentconf.com/fluent2012/public/content/video
Oh and hey, send some free prints on us :)
Anything in particular you guys would like to know about our Backbone usage?
Perhaps not related to backbone but how are you encoding the different "views" in your single page application? Does the client download all of the templates upfront or how does that work? Also does the client know which template to render for a given api call or is that passed down from the server as well?
I'd be very interested in reading a blog post demonstrating how you strung all of this together! Pretty cool!
Thanks!
Initially we had inline handlebar.js views wrapped around script tags. Now we precompile all templates into JS objects (http://handlebarsjs.com/precompilation.html). These templates are compressed and Gziped into one file and downloaded on page load. We will have two sets of templates now (common views used across the site and application specific views like account profile).
Blog post coming soon :)
* why do you choose to extend views rather than using mixins?
* what was your experience with requireJS aside from your rails problems? Did you find it helped development or not?
Heroku vs EC2.
Honestly, going through YC you get a bunch of Heroku credits. You also get AWS credits but getting a production app on Heroku is very simple, especially with rails. I also have to build and manage fewer parts of the infrastructure/deployment when you are trying to scale up and down. I don't think it's that expensive if you have optimized parts of your stack. Use web for only serving API, single page app, optimized assets via CDN etc.
Extend vs Mixins.
For Picplum we are building multiple front end's that use the same models and view logic with slight modifications. For example on our new homepage (coming soon), you can upload photos, add recipients and send out photos without having to goto the app. This is our new on-boarding process. Extending makes a lot more sense her. Homepage Batch view vs App batch view, Homepage Recipients vs App Recipients.
Require.js
We are still in the middle of figuring out a stable production setup with require. It helps you structure your Backbone app more efficiently. The tough part is to figure out how to bundle your js files effectively. You probably don't want every single JS file loading asynchronously since there can be 20+ files just for the homepage.
Sounds like it would make sense for heroku to have a configurable timeout.