We left CircleCI because their pricing model punishes monorepos. Every pipeline, every workflow, every job is a tax. Our "microservices" are 12 services in one repo. CircleCI's per-job-minute cost made every PR a financial bleed-out.
Switched to Buildkite. Self-hosted agents on spot instances. Here's the raw comparison for last month's 850 builds:
* **Cost:** CircleCI was ~$2,300. Buildkite + AWS compute: ~$700. Mostly spot.
* **Build time (avg):** CircleCI: 8.5 minutes. Buildkite: 6 minutes. We cranked the agent pool for parallel jobs.
* **The catch:** You manage the agents. Your infra, your scaling logic, your AMI updates. It's not "serverless." It's work.
If you're not afraid of owning the runner layer, the math is stupidly simple. CircleCI for monorepos is a luxury tax.