Rendering on the Server and Client in Node.js | JavaScript for Line of Business Applications | Scoop.it

At Artsy we’ve been building Node.js applications that share code and rendering between the server and browser. We’ve seen many benefits from this – pages load faster, we can optimize SEO, developers are more productive, and JavaScript coding is just an overall better experience.

Today we’re happy to announce Ezel, our open source boilerplate we use to bootstrap our Node projects and the various node modules that built up to it.

 In this article I’ll tell Artsy’s story of moving from a single monolithic application to modular Backbone apps that run in Node and the browser and consume our external API.

A monolithic app that treats it’s client-side code as a second class citizen was clearly not going to scale. Our poor mobile web experience was a good candidate to try something new. So we started building a separate mobile optimized website (m.artsy.net).

Some goals became clear:

* Better client-side tools from JavaScript testing to package mangers.

* Share rendering code server/client to reduce duplication and optimize initial page load.

* Flexibility. We needed a way to divide our app into smaller chunks with smaller asset packages.