Competitive landscape

Internal research for #157, researched 2026-10-08. It records what each neighbouring tool is documented to do today, so any comparison we publish can be checked line by line against a source.

Private. Internal working notes, not site copy. Nothing here goes on the website unless the source is rechecked on the day it is published. Recheck every row whose Checked date is older than about six months.

How to read this

Each tool section gives what it does better than a new early-access deploy tool, where it overlaps with Keep Shipping, licence and pricing, a dated status signal, and numbered sources with the date accessed. Reference numbers are scoped to each tool's section and resolve in that section's own Sources list, not globally; the numbering keeps each section's history, so the GitHub Actions and GitLab lists jump 25→27 and 41→43 (numbers 26 and 42 are unused). Facts come only from pages fetched on the day; where a page would not answer the question, the entry says "not verified" rather than filling the gap from memory.

Where Keep Shipping stands

Facts from this repo, not from the site:

At a glance

ToolCategoryWhat it does better (one line)Status signal (with date)Checked
DaggerCI-as-codeEight first-party SDKs, content-addressed caching, managed cloudv0.21.10 released 2026-09-302026-10-08
EarthlyCI-as-codeNothing further; the project and its cloud are finishedCloud stopped 2025-07-16; last release v0.8.162026-10-08
AtlantisIaC workflowNine years of PR-driven apply, deep approval rulesv0.48.1 released 07 Oct (year not shown)2026-10-08
SpaceliftIaC workflowOPA policy over plans and approvals, state-aware workflowsNo official release feed (404)2026-10-08
env0IaC workflowA free tier with real capacity; drift with blast-radius contextRebranded to "env zero"; no dated notice2026-10-08
HCP TerraformIaC workflowThe reference Terraform platform; agents in customer networksIBM acquisition completed 2025-02-272026-10-08
Digger/OpenTacoIaC workflowMIT-licensed IaC orchestration inside a pipeline you already haveRenamed to OpenTaco 2025-11-072026-10-08
Argo CDGitOpsKubernetes reconciliation, project-scoped RBAC, CNCF Graduatedv3.5.4 released 2026-10-062026-10-08
FluxGitOpsProgressive delivery (Flagger), vendor-independent foundationv2.9.6 released 2026-10-012026-10-08
KargoGitOpsPromotion as a first-class object, modelled across environmentsv1.12.3 released 2026-10-082026-10-08
Harness CDDeploy orchestrationCanary gates, post-deploy verification, flag guardrailsMonthly roundups through August 20262026-10-08
Octopus DeployDeploy orchestrationTwo approval mechanisms; change windows; database deploysServer 2026.3 build 15878, 2026-09-302026-10-08
GardenDeploy orchestrationStack Graph, ephemeral per-PR Kubernetes environments0.13.65 published 2026-08-242026-10-08
GitHub Actions environmentsNative CIRequired reviewers, custom protection rules, branch policiesDocs still say "public preview" for custom rules2026-10-08
GitLab environmentsNative CIGroup-level protected environments keyed by deployment tier19.4 released 2026-09-172026-10-08

CI-as-code engines

Dagger

Earthly

IaC workflow tools

Atlantis

Spacelift

env0 (branded "env zero")

HCP Terraform (HashiCorp, now IBM)

Digger / OpenTaco

GitOps and continuous delivery

Argo CD

Flux

Kargo (Akuity)

Deploy orchestration

Harness CD

Harness Inc. (harness.io), unrelated to this repository's name; kept only because "Harness" is a common search collision.

Octopus Deploy

Garden

Native CI features

GitHub Actions environments

GitLab environments

The comparison table

The site table lives in Keep-Shipping/website, not in this repository. We have not seen its exact wording, so what follows is the rule we intend to hold it to, not an edit of the table itself. The copy issue is Keep-Shipping/website#5.

The rule

A row may only state what a numbered source above supports. If no source supports it, the row either gets a source or it comes out. The "Maturity, New. That's why it's early access." row stays as it is: it is the accurate description of a project whose README says nothing runs yet, and softening it in either direction would be worse than leaving it.

Sourced facts that constrain the categorical rows

These constrain any row reading "YAML-based CI" or "shell scripts, glued". Such a row must not imply that YAML CI has no approvals, because the incumbents have them:

So the differences we can support, and only these, are properties of the file rather than of the category:

Rows to check on the site

Open questions, and what is not verified

Refreshing this page

Whoever takes it next: re-fetch the sources per tool, compare each bullet, and update the Checked column. Refresh a tool in the week you write about it, not the week you last read about it. If a row cannot be re-sourced on the day it is published, it does not get published.