What is Unstacks?

Posted on Sep 21, 2018 by Joel Weirauch

You might be wondering what exactly Unstacks is and why did I decide to create it. I can’t say that I blame you, it is somewhat of a different SaaS offering by not being geared towards production systems. So, let me first start off with why I created it and then maybe it will make more sense when I describe what it is.

Why create Unstacks?

I’ve created similar systems for a few of my clients and they have been super pleased with the results. I’ve been able to help clients transition to radically different development and testing / qa processes than they were previously using. I’ve been told that they have seen the impact not only on their developers and QA staff but across the board with being able to ship faster, saving money on servers and being able to more quickly fix issues that come up in production.

After creating a couple of these bespoke systems for individual companies I started thinking about the possibilities for making it a SaaS that anyone could use instead of putting in place dedicated copies of it at each company.

So what is Unstacks and what problem does it solve?

Once you get to a certain scale developing software it’s common for there to be product managers and / or QA staff that need to look over developer work and make sure it works correctly and satisfies the requirements laid out. This can take any number of forms such as:

  • The developer giving a demo from his/her local workstation.
  • Deploying onto a single staging server environment.
  • Deploying onto one or more dedicated staging / integration environments.

There are issues with all of these solutions though. In the case of the dev giving a demo, the QA people aren’t able to really hammer at it because it would tie up the developer machine. The developer is also tied up while giving the demo and has to go through a more complicated process of managing branches on their local workstation.

In the case of a single or multiple dedicated staging or integration environments, these cost money to keep up and running. They cost developer and/or operations time to keep up to date and they create a management headache to remember what code is where. They can also slow the development process if there are more branches to test than environments to test on.

This is where Unstacks comes in. An Unstack is a dedicated, ephemeral environment for any branch or tag on GitHub. It can be as simple as a single instance to test a web application or multiple services that are all required to run your application. No matter what your application requirements are, each deployed branch / tag is exposed on its own unique URL.

You can deploy updates as you push them to GitHub. You can destroy and recreate a branch environment or you can simply destroy it outright when you are done.

The point is to allow your developers to keep working on code, your product managers and QA to keep testing and validating the developers work and to eliminate the headache of managing dedicated environments, remembering what code is where or being tied up waiting for a dev to finish a fix.

If all of that sounds awesome to you, we’d love to have you jump into the beta and help us make Unstacks awesome!