Slides from my Ember NYC talk on January 28th, 2016 about Ember server-side rendering with FastBoot.
FastBoot
View Slide
Progressive Enhancementfor Ember
“Server-SideRendering”
“Server-SideRendering”is just the start
Server-Side…• Rendering• Routing• Model Fetching• Serialization• Logging• Authentication
Other libraries have“server-side rendering”
FastBoot is server-siderendering for the 99%
Ease of Use
$ ember install ember-cli-fastbootInstallation
$ ember fastbootDevelopment
Deployment
Architecture
Requirements• No PhantomJSbuggy, slow, massive memory consumption• No jsdomslow, compatibility quirks• Concurrent
HTTP/HTTPS
Ember App
Ember AppApp Instance App Instance
Constraints
Constraints• No jQuery• No DOM• No globals• No shared state• No browser-onlyAPIs
Universal JavaScript
Isomorphic
ember-networkgithub.com/tomdale/ember-network
import Route from "ember-route";import fetch from "ember-network/fetch";export default Route.extend({model() {return fetch('https://api.github.com/users/tomdale/events').then(function(response) {return response.json();});}});
node-fetch.js whatwg-fetch.jsFastBoot browserfetch.js
Deploying to AWS
Demo
IAM RolesInstance ProfilesElasticBeanstalk EnvironmentsS3 BucketsBucket PoliciesAutoscaling Groups
What You Can Do
bit.ly/help-finish-fastboot
FastBoot only works if thecommunity rallies around it
Test Your AppsTest Your Addons
Fast LoadSEO FriendlyMobile FriendlyRich InteractionsOfflineFast Navigationprogressive enhancement JavaScript
Fast LoadSEO FriendlyMobile FriendlyRich InteractionsOfflineFast Navigation+
Thank You
Questions?
SHIRT SuitsupplyTROUSERS Ted BakerTIE HermèsSHOES Allen EdmondsSOCKS Slack