Building full Javascript application stack

Tags: javascript, backbone-js, node-js, express-js, mongo-db

After started working with Backbone.js last September, I suddenly found myself in the interesting world of Javascript. I started realizing that there's much more than client-side application development happening there, and got interested in setting up my own full-Javascript development stack to explore the possibilities of that (at the moment extremely hyped) platform. I'm going to share my experiences while moving forward...

What's the stack?

Very much hype in the development world at the moment is happening around Node.js, a server-side Javascript platform, which currently gets lot of attention and open-source development, building plugins, libraries and frameworks around it.

So, setting up a Node.js application as an API backend for my client-side Backbone.js applications seems like a natural step forward. And, while we're at it, let's also use MongoDB as a database to keep everything in Javascript.

Actually, the first step that I took, and considered going forward with, was to set up Ruby and Sinatra environment for the backend, but then I've switched to Node.js + Express.js, which offers the similar philosophy, but in Javascript.

So, you'll find some references to Ruby and Sinatra in the prototype project I'll be talking about, but the focus now is on the Node/Express side of things.

What's the goal?

Now that I've given a little bit of background, let me introduce you to the prototype project I'll be doing and posting more articles based on it. For the moment, the idea is only to explore the possibilities of the stack and build some really basic functionality application on top of it.

For that purpose, I've set up the project's repository on GitHub where you can track progress, and look for references and code examples on topics that will be covered here in the future.

Who's doing it?

I've started with this to learn how to set up the complete stack, learn Node.js, Express.js, MongoDB, then making automated Backbone build scripts, test scripts, and everything else that's needed to run a project using these technologies.

In the meantime, I've shown this to a friend and a fellow developer Bruno, who's got hooked up on Backbone.js, and found this a cool option to build his skills in that area.

So, he'll be jumping in for the client-side Backbone.js and Jasmine stuff, while I'm going to explore the server-side and MongoDB. Of course, we'll probably overlap and switch our roles from time to time, to learn as much as possible around the whole stack.

For the moment, we're building a full REST API around the simple functionality of having and managing Users collection, which is a thing almost every decent application will need. So, this code will be a cool starting point for building other apps.

What will be next, we'll see, there are some ideas but no concrete plans yet.

What's next?

This was just an introduction to give a little context around the future posts on the subject of Javascript development stack. In the following posts, I'll be covering some specific parts of the stack, challenges I've encountered, things I've tried, decisions I've made (and changes to those decisions that will happen).

Posts that may be expected in the near future will cover the following topics: Setting up MongoDB with Node.js, using Express.js to build a rich-client application's supporting API, automated Backbone.js application build-scripts using Rake, and more to come as we'll be moving this thing forward.

Opportunities to always learn something new, and calling it work, are one of the greatest gifts software engineers have. I hope you'll join me on this journey and enjoy it as much as I do.

Story comments:

blog comments powered by Disqus