2 guys that wanted to leverage technology to actually accomplish the things we set out to accomplish.
Now, there are a lot of tools out there, many free, or with free tiers. So, to narrow down the field, we started with our requirements:
- a local dev, stage and prod environment
- PAAS infrastructure
- Workflow management
and a few core beliefs:
- Free is better than paid
- Automate as much as possible
- Focus on the here and now, with one eye on the future
- Customer validation is our.first priority
There was another less important, but definitely present criteria, if we could use interesting new technology that we'd like to learn about, we should, at some point.
Now, Jon is the type of person that has spun up a ton of environments and it's nothing to stand up our own server and install git and install a CI tool, wire it to a PAAS or IAAS and get things going, when working on a side project, that time is time away from the product. And we wanted to minimize the experience of chasing down environment errors. There's nothing worse than finally finding time to work on your side project and burning that time troubleshooting integrations. So, there was a lot of appeal to finding something that just works.
While figuring all this out, I happened to discuss this with my wife Jamie. While some problems tend to solve themselves, this one, Jamie solved for me. She works at GitLab, so that's what we'll use. And we're glad we did.
From a workflow perspective, especially with recent updates, I'm very pleased with the issue boards and workflow capabilities. Issue creation is simple, labels are easy, assigning is great and they have an intuitive issue branching supporting interface.
GitLab's CI was a real find. Simple. Powerful. And could easily support much more than I project will be, for a long, long, time. And that's a theme that we've begun to see recur, over and over again.
Currently, we stood up our prod and stage environments on Heroku; it's quick to setup and not too expensive for our MVP / early stage. However, we recognize that we'd like to eventually containerize and move to Kubernetes. Gitlab's integration with Heroku is simple and when we get around to a Kubernetes migration, that have some first order integrations and features that make that easy. The runners, container registry, testing features and much more, when we get there, make the offering very compelling. No significant tooling or configuration required.
Those are just the features we're using today and planning to use tomorrow. However, if our project grows legs, GitLab continues to have, and develop, feature after feature that will allow us to grow with very little effort. CVE checking and static analysis are already built in. IAM support. Auto-Rollback of deployments.
For a startup with big dreams, we'll get a lot of mileage out of GitLab without having to worry about integrating and supporting an development / workflow series of tools.
GitLab allows us to just focus on building our product
It's that simple.