April 23, 2012.
For our latest product, Ginger, we wanted to marry the real-time functionality we needed with the traditional Django stack we know and love. After some false starts and falling on our faces in the beginning, we ended with a stack we’re happy with and think will serve us well moving forward.
This is our bread-and-butter. It’s Django and PostgreSQL running with Gunicorn behind Nginx. The biggest difference between this and your typical Django site is that it mainly serves as a REST API consumed by the front-end. We are using traditional Django views in a few places like login, logout, and user profiles, but the rest of the views are handled by the front-end.
Using Django, we were able to quickly build the nuts-and-bolts parts of our site that didn’t require any special real-time functionality. A few of the important libraries we’re using:
January 13, 2012.
Our team of 10 is distributed across 8 countries and 3 continents. We have no central office. When we first started, a couple years might go by without ever meeting in person, now we meet in person for at least a week each year. Even if it weren’t for the massive timezone differences making business meetings a challenge, we’d still hate them. Our weekly “state of affairs” calls were at best boring and at worst, a disruptive waste of time.
We rely on the internet to bridge the physical gaps between us. Over the last five years, we’ve tried just about every piece of software out there.
Skype and IRC/Campfire/HipChat/IM are great, but they require everyone to be online at the same time otherwise the conversations just blow past them while they’re sleeping or working.
Basecamp messages are only a small step above ...