Our application is slowly becoming more maintainable. We have created some much-needed tests and automated them. Before this chapter, we could only start the application from localhost. Now, it is ready to be deployed to different environments. We did this by extracting out all the differences between environments (URLs, connection strings, and app IDs are some). Then, we used Grunt to create automated tasks that build the application for each environment. The tasks also force us to use best practices when doing this. Finally, we scripted these tasks so that each one would only consist of one command instead of three to four for each.
In the next chapter, we will actually deploy our application somewhere other than localhost.