# Compare

> Where ModernCI beats each rival, and how we know. Each claim cites the rival's public docs.

Each gap below is one we hit on our own monorepo first. Each rival is the best at that one thing today. Claims about rivals cite their public docs.

| Gap | Best rival | Why we know | How ModernCI beats it | Link in the chain |
|---|---|---|---|---|
| Result reuse | [Bazel](https://bazel.build/remote/caching), [Nx](https://nx.dev/ci/features/self-healing-ci) | A one-line test change re-ran every dependent crate; hand-written inputs risk stale greens. | Observed input keys, zero config, correctness measured and published. | quality |
| Splitting a check | Nx agents, [Buildkite](https://buildkite.com/docs/test-engine/flaky-test-management) | 4 cold shards each rebuilt the tree: ~2,000 s per PR. | Build once, test many; the router picks the fan-out from deadline and price. | speed |
| Per-test truth | [Trunk](https://docs.trunk.io/flaky-tests/overview), Buildkite Test Engine | A dozen flakes; tests that passed by skipping; an oracle that judged zero rows. | Flakes named by cause, each given a second witness; "nothing judged" is red. | quality |
| Fix validation | [Nx self-healing](https://nx.dev/ci/features/self-healing-ci) | "Done" without evidence; fixes that failed again; weakened tests. | Failing check judged first; red before green; sealed paths. | quality |
| Queue throughput | [Mergify](https://mergify.com/compare/aviator), [Aviator](https://docs.aviator.co/mergequeue/concepts/batching) | 30 open PRs, re-judge storms, red batches with no culprit. | An affected-aware queue: unrelated PRs merge in parallel, with no queue. | speed |
| Time to verdict | [Depot](https://depot.dev/changelog/2026-03-24-depot-ci-now-available) (2-3 s start) | Actions queue waits; the minutes cap; one VM, one cargo job. | Warm pools sized by workload, warmed when an agent claims work; done-to-verdict is the number. | speed |
| Migration | Marketplace compatibility, unshipped | We moved our own monorepo off Actions by hand. | Import, then shadow; cut over when verdicts agree. | quality |
| Forge reach | [Copilot](https://github.blog/changelog/2026-06-04-fix-with-copilot-for-failing-actions-now-in-pro-pro-and-max/) inside GitHub | One shared, rate-limited token; no bot identity. | Every forge, one status, a budgeted forge client. We can't live inside GitHub, and say so. | speed |

Nobody else:

- The agent owns the loop. From commit to merge, with appeals, usage limits and rulings. Rivals fix one red when asked.
- Cost per merged change. Machines plus agents, per PR and per fleet, with waste named by class and capped by budget.
- One binary, any forge. Self-hosted with zero required dependencies, and an operator MCP so agents can run the CI itself.
