Each project that has medium complexity should have a clear deployment process in order to allow launch a new release in a reliable and quick way. With a correct deployment process you can detect bugs before introducing it to a production environment.

Version Control System

Every project must use a Version control systems (VCS). VCS are useful to track the changes we made in our code and facilitates team collaboration. Git is our preferred VCS. We use GitHub for open-source projects and GitLab for proprietary projects.

Git Flow

GitFlow is a branching model for Git. It has attracted a lot of attention because it is very well suited to collaboration and scaling the development team. You can learn more about it reading this blog post.


When you are developing a new application commonly you will have many environments with differents versions. Each environment has a specific propouse and a owner. We recommend the definition of 5 enviroments.