Blossom under the Hood: Our Technology Stack
Quite a few people have asked us about our tech stack so I figured I should write a post as a thank you to the people behind the technology that we use to run Blossom. Clearly standing on the shoulders of giants here.
Google App Engine
We’ve traditionally hosted everything ourselves, no matter whether it is a personal project, a project of a friend or a project for a client.
The first time we hosted a pet project on Google App Engine was an enlightening experience. We immediately understood that while we enjoy and really care a lot about sysadmin challenges what we actually enjoy most is creating great products on reliable infrastructure.
The warm fuzzy feeling you get when you can stop to worry about database scaling issues, hardware failures or monitoring and restarting a herd of daemons is incredible.
While Google App Engine as a platform was somewhat restrictive in its early days, it has improved steadily and we are very happy campers.
We’ve been heavy Django users in the past and learned a lot from the community and the vast amount of top notch documentation it provides. But as Django was built with relational databases in mind it wasn’t a perfect match for Google App Engine. So we started to dig around for a good alternative.
Flask was exactly what we’ve been looking for. A lightweight database agnostic framework based on Werkzeug and Jinja2. Similar to Django it comes with outstanding documentation and a very supportive community.
As you probably already have guessed Python is our language of choice for backend code, command line tools and data crunching. It is probably the least surprising choice in our stack. Python offers great libraries, clean syntax and a healthy community that cares about documentation, stability and pragmatic solutions.
We’ve been very early adopters of Backbone.js and looking back it definitely is among the best technology choices we made. While Backbone is very lightweight it gives your codebase a lot of structure by providing a few simple building blocks like Views, Models and Collections.
Having worked with Google Closure, CoffeeScript and the Google Developer Tools in we’ve experienced how access to great tooling can drastically decrease complexity.
That’s why we are going to push Dart code into production at Blossom in the coming days. Stay tuned.
Ping me anytime you want to chat about tech stacks and trade-offs