Lecture - Slides Airbnb Slides PDF
Lecture - Slides Airbnb Slides PDF
Overview
The Story The Stack The Future Its Hack Time!
THE STORY
Joe
Text
Nate
Brian
Rent increases
They cant aord it
Rent increases
They cant aord it
SF Design Conference
NO VACANCY
Big Growth, Big Problems Fraud Search Payments Trust & Safety Internationalization
THE STACK
Framework Database Analytics Key/Value Store Client Language Client Framework SSJS Stylesheets
Amazon Web Services EC2 Web Servers RDS Database S3 Storage ELB Load Balancing EMR Cluster Computing DynamoDB Distributed K/V Elasticache Memcache
THE FUTURE
Airbedandbreakfast.com
Airbedandbreakfast.com
Started in 2008
Airbedandbreakfast.com
Started in 2008 Ruby on Rails app
Airbedandbreakfast.com
Started in 2008 Ruby on Rails app Was Rails 2.3; painful upgrade to 3.x
Airbedandbreakfast.com
Started in 2008 Ruby on Rails app Was Rails 2.3; painful upgrade to 3.x Traditional page-based paradigm
website
website v.
website v. webapp
website
client
server
webapp
client
server
past
past v.
past v. future
navigate around the app without page refresh application logic in the client
navigate around the app without page refresh application logic in the client fetch data on demand
Why now?
faster JavaScript runtimes new browser features (pushState, localStorage, WebGL, etc.)
faster JavaScript runtimes new browser features (pushState, localStorage, WebGL, etc.) heightened user expectations
How we do it.
provides structure to your JS MV* (MVC, MVP, MVVM, ...) Backbone.View, Backbone.Model, Backbone.Collection, Backbone.Router
JS app runs entirely in client Server technology agnostic Poor SEO; not crawlable
JS app runs entirely in client Server technology agnostic Poor SEO; not crawlable Performance hit to download & evaluate JS before rendering
Routing, rendering, biz logic run on client & server Re-render in client with pushState; hit refresh, serve full page of HTML
Routing, rendering, biz logic run on client & server Re-render in client with pushState; hit refresh, serve full page of HTML Provides SEO
Routing, rendering, biz logic run on client & server Re-render in client with pushState; hit refresh, serve full page of HTML Provides SEO Initial pageload is faster
Enter Rendr.
Pulls Backbone to the server Write your application once Run application in web browser and in Node.js
Technological Vigilantism
Cross-functional Collaboration
Hackairthon #1