JSZurich - Building Isomorphic Apps

Thanks to Liip for hosting this edition of @JSZurich.

@spikebrehm will talk about building isomorphic apps at Airbnb:

After building more and more rich and complex JavaScript apps at Airbnb, we started to see the single-page app approach break down. The language and environment barriers between our Rails server and fat client app caused code duplication and the lack of server-side rendering led to slow initial page load performance and SEO headaches.

The dream of a shared UI layer and reusable business logic led us to start experimenting with ways to bring these apps back to the server. We started by converting our mobile web site, a Backbone app, to also run on Node.js and Express, which led to the open-source Rendr library. Since then we’ve learned a lot and have begun to refine our understanding of “isomorphic JavaScript”.

There are a wide range of approaches which might be considered “isomorphic” — an app could share just a few tiny modules of business logic, or just templates, or route definitions; or it might try to share the entire application code. The more code that is shared, the more abstractions have to be built to shim the differences between the very dissimilar environments of web browser and server, and the more complex and tightly-coupled the result will be.

This talk will give some broader context for isomorphic JavaScript, show some real world examples, explain common application patterns for isomorphic apps, and then dive into the open-source tools and libraries that you can use to build isomorphic apps: libraries like Handlebars and Superagent and build tools like Browserify and Esprima.

45 people are attending this meetup

Open in Google Maps