09 Oct 2011 » Choosing a New Web Stack
I like building web sites, a lot. Usually every few years I need to re- evaluate the stack I use for a side-project. Joshua's Stack Parts site is handy for this.
At Mozilla Webdev we stick to reeds + mysql + elasticsearch + celery + rabbitmq + memcache + git + virtualenv + python + django + jinja2 + modwsgi + commander + puppet + apache + less + jquery as our go-to stack. It's tried and true and it's been working and been evolving for two years.
So I'm at re-evaluation time. The first element of the stack I needed to decide upon was the web framework. I initially thought I'd use Django, and maybe alternate a few supporting libraries just to color my experience. But Flask caught my attention.
Flask is from Pocoo who have given me great things like:
It was a microframework, which meant that it didn't contain as many things as Django, but at the same time, I didn't use that much of Django.
Flask was a nice way to stay mostly in my comfort-zone, and in some ways, focus me on just writing an app, and not working in a framework. Since it's python, if I start to miss Django, I can probably rewrite my code without too much effort.
Overall I'm excited, and I just got past, "Hello World."
I'm not sure what my stack will look like, I'm imagining it will evolve into:
postgresql + memcache + git + flask + jinja2 + gunicorn + fabric + puppet + nginx + less + backbonejs + jquery
This will give me a chance to learn more about things I'm interested in, and utilize what I think might be better options along the stack.