I finally put my newly built Node.js MVC stack on github! You can download it here: backbone-everywhere.
What’s so special about it? Here’s my list of exciting features:
- Pages are rendered on the Node.js server by Backbone and jQuery.
- All script resources are bundled by browserify and fileify, uglified by uglify, and gzipped by connect-gzip for fast loading and deployment on other possible javascript environments.
- The entire Backbone MVC stack works on the server, and is loaded in javascript enabled browsers to take over from there.
- The app state is reflected in the url by means of HTML5’s pushState, or using hash notation when not supported.
- The same app state is regained for non-javascript browsers pulling full requests from the server, so no worries about SEO!
- All client / server communication is handled by socket.io (ajax is sooo 2009) and subscribed clients are updated with published models.
- A JSON-RPC service listening to ‘/api’ requests, with an easy to build on service layer. Handy for non-web contexts such as mobile devices.
- All data is persisted in Redis through an adaptation of mine of backbone-redis, enabling indexing, sorting and foreign key lookups.
For me this is a whole new approach at engineering web applications, but I think I’ve managed to get a grip on it.
Not only that, it gave me a great impulse to reconnect with the pioneers of tomorrow. Because what I have done was build on top of the stuff from people with great vision.
Big shout out to the open source community, and the people willing and wanting to share. The sum of it’s parts will eventually overcome the current patent trolling paradigm.
What are you waiting for? Dig in!