As promised in the first post, today we are talking about how we make Thunderbit.

We use Taiga, an agile project management tool which supports Kanban. With Taiga we manage what we do, when and by whom.

Our source code is free (as in freedom) so we placed it in a public repository. We keep it at GitHub, and of course, we use Git, a great CVS trusted by lots of rocking projects like Linux kernel, jQuery, Bootstrap, and many other. There you can get the sources, see the commits history, fork the project, make pull requests, open issues and also give us a star if you like what we are doing.

We test our code locally, and in the cloud via Travis CI. This continuous integration tool is a neutral place to test our changes and avoid errors like the classic “It works on my computer”.

Last, but not least, we have a running instance of the application at Heroku. This instance is connected to an Amazon S3 bucket to store the uploaded files, and to a MongoDB database at MongoLab.

In short:

  1. We code and test locally, then we push to GitHub
  2. Every time we make a push Travis CI compiles the project and runs tests on it
  3. If the code compiles and the tests run successfully the update is deployed to Heroku

This is a very basic Continuous Deployment set up.