My Web Application Development Stack

A decent percentage of the client projects we (Grafton Studio) take on are custom web application builds.

I've changed and evolved the tools, languages and frameworks I use over time, so here's my current (and favorite, so far) stack.

Front End

Sass

I switched from writing normal CSS to writing Sass a few years ago and can't imagine not having the power of a CSS preprocessor at this point.

Grunt.js

For compiling Sass to CSS and for concatenating and minifying all CSS and JavaScript files.

Angular.js

I used to use Backbone.js for every web app I built, but once I gave Angular a serious try I fell in love.

I'm not saying it's "better than Backbone", because I'm sure both can accomplish the same thing, but it certainly makes a lot more sense to me than Backbone did. Modularization of features within an app feels effortless now.

Back End

Python

In the past, my server-side language of choice was PHP, simply because it was the first I had learned and it was easy to start using on any server.

I had long admired the elegant syntax of Python and finally decided to make a real effort to learn it. Once again, you can accomplish the same thing in any server-side language, but Python "feels nice" to me and seems to be much more performant right off the bat.

Flask

Flask is a lightweight framework for Python. It has a built-in development server, debugger, router, templating engine (Jinja2), RESTful request dispatcher, support for secure cookies and more.

Flask also has many great extensions which can be installed into your project environment with one line in the terminal. For example, you can install Stripe for Flask with the following line: pip install stripe

MongoDB

The database I used most before switching to Mongo was MySQL. The thing I love about Mongo for developing web applications is not having to know my exact database schema beforehand. The database can evolve as the application evolves and grows. I understand that this isn't always a good thing, but it works well for me so far.

I have also noticed Mongo to be speedier in general when compared with MySQL.

In Conclusion

I'm sure my web app development stack will continue to change as time goes by, but I'm really enjoying this combination right now.

I've also played around with Node.js and Express.js (a Node web framework) and would love to build an application with them at some point.

I'll end this post with a typical end-of-blog-post question ;)

What's your current web application development stack and why?

Posted on June 30th, 2015