Diffinery

Diffinery vs Buildkite

Buildkite orchestrates CI on agents you run or it hosts, for code on GitHub, GitLab or Bitbucket. Diffinery hosts code and runs GitHub Actions workflows.

Last updated · View as Markdown

Buildkite Pipelines is a CI/CD service with a hybrid design: Buildkite runs the control plane (the web interface, APIs and scheduling), and the jobs run on agents, either on your own machines or on agents Buildkite hosts. Your code stays on GitHub, GitLab or Bitbucket. Diffinery is a git forge with CI built in: it hosts your repositories, pull requests and issues, and runs GitHub Actions workflows as they are on its own runners. It is free, open-source software (Apache-2.0) that you deploy to your own Cloudflare account, with no hosted service (see Deploy your own Diffinery and the source code). Buildkite facts here are from its own website and documentation, checked on October 25, 2026, and linked below.

In short

  • The biggest difference is who runs the machines. Buildkite is built around agents on your own infrastructure, which keeps your source code and secrets inside your network. Diffinery runs every job on hosted runners that your instance starts in Cloudflare Containers on your own Cloudflare account, unless you add self-hosted ones; there are no build machines to manage.
  • Choose Buildkite if you want builds on your own fleet at large scale, need hosted macOS or machines larger than 4 vCPUs, want pipelines generated by code while a build runs, want SOC 2 Type II today, or want to keep your current Git host.
  • Choose Diffinery if you don't want to manage build machines or a separate CI service, are happy to run your own instance on Cloudflare, want code hosting, review and CI in one product, write workflows as GitHub Actions YAML, and want AI agents held to guardrails by the forge itself.

Side by side

DiffineryBuildkite
What it isGit hosting, pull requests, issues, releases, a container registry and GitHub Actions–compatible CI in one platformA CI/CD control plane run by Buildkite, with the jobs on agents you run or on Buildkite hosted agents (source)
Who runs itYou: you deploy your instance to your own Cloudflare account and pay Cloudflare for its usageBuildkite runs the control plane; you or Buildkite run the agents
Where your code livesYour Diffinery instanceGitHub, GitLab (including self-managed) or Bitbucket (GitHub, GitLab, Bitbucket)
Where jobs runYour instance's hosted runners in Cloudflare Containers, or your own machines with diffinery runnerYour own machines, on premises or in your cloud, or Buildkite hosted agents. With your own agents, Buildkite says "source code and secrets, remain within your environment and are not seen by the Buildkite Platform" (source)
Pipeline formatGitHub Actions YAML in .github/workflows/Buildkite YAML, usually .buildkite/pipeline.yml, uploaded by an agent at the start of a build; steps can be added while a build runs (source), and plugins hook into the job lifecycle (source)
GitHub Actions workflow filesThe main format; every difference is listed in CompatibilityIn public preview, as native Buildkite jobs. pull_request_target is "intentionally unsupported", workflow_run and repository_dispatch aren't supported yet, and GitHub-hosted runner images aren't reproduced (source)
Hosted Linux x64 sizes1/4, 1/2, 2 and 4 vCPU; 4 vCPU and 12 GiB by defaultSmall (2 vCPU, 4 GB) on every plan; Medium (4 vCPU, 16 GB) and Large (8 vCPU, 32 GB) on paid plans; up to 64 vCPU and 256 GB, and Arm, on Enterprise (source)
Hosted macOS and WindowsNot available; use self-hosted runnersmacOS on Apple M4 (source); Windows hosted agents in private preview (source)
Hosted Linux priceFree and open source (Apache-2.0); you pay Cloudflare for your instance's usage, with runner containers billed by the 10 ms while a job runs (source, checked October 25, 2026)$0.004 per vCPU minute, so $0.008 a minute for Small (2 vCPU), metered to the second (source)
PlansNone. Your Cloudflare account needs the Workers Paid plan, "a minimum cost of $5 USD per month per account", plus usage above the included amounts (source, checked October 25, 2026)Free: up to 5 users, 10 concurrent jobs and 2,000 Linux vCPU minutes a month. Pro: $30 per active user a month, 4,000 Linux vCPU minutes, 10 self-hosted agents included and $3.50 a month for each one after. Enterprise: custom (source)
Longest job on hosted machines6 hours8 hours on hosted Linux agents (source)
ComplianceNone: Diffinery is open-source software you run, not a certified serviceSOC 2 Type II (source)
MCP serverBuilt in at /mcp on your instance: read code, commit, open, review and merge pull requests, follow CI and run commands in sandboxesHosted at https://mcp.buildkite.com/mcp, with data from pipelines, builds, jobs and Test Engine, and write actions such as retrying jobs (source)
AI agentsAgent accounts with server-enforced guardrails, sandboxes, agent tasks and agent reviewAgents on your Git host work as they do there
Pull requests, issues, code reviewBuilt inYour Git host's

Where each one is the better fit

Buildkite is the better fit when you already run, or want to run, your own build machines, for example for security, special hardware or cost at very high volume; when source code and secrets must stay inside your network; when you need hosted macOS or machines larger than 4 vCPUs; when your pipelines are big enough that generating steps from code pays off; or when you want to keep GitHub, GitLab or Bitbucket. Buildkite's hosted agents and control plane are also run for you, where a Diffinery instance is yours to deploy and update.

Diffinery is the better fit when you want CI without managing any build machines, one platform for code, review and CI, workflows in the GitHub Actions format with actions from GitHub as they are, and a forge that enforces what AI agents can and can't do, and you're happy to run that forge on your own Cloudflare account. Your CI should be Linux, or you should be happy to add self-hosted runners for the rest.

Moving from Buildkite

Deploy your own instance first (guide). Diffinery's importer reads from GitHub. If your code is on GitHub, it brings over each repository with its history, issues, pull requests, reviews and releases; see Migrate from GitHub. From GitLab or Bitbucket, push branches and tags with plain Git; see Move with plain Git. Then rewrite each Buildkite pipeline as workflows in .github/workflows/. Jobs that need your own hardware can keep it: register those machines with diffinery runner and target them with runs-on: [self-hosted, ...]. See Self-hosted runners.

Frequently asked questions

Is Diffinery a Buildkite alternative?

Yes, if you're willing to move your repositories as well. Diffinery's CI runs on its own repositories, so it replaces Buildkite and your Git host together. Like Buildkite, it can run jobs on your own machines, with diffinery runner; unlike Buildkite, it also runs every Linux job on hosted runners in your Cloudflare account by default.

Can I run my Buildkite pipelines on Diffinery?

No. Diffinery runs GitHub Actions workflows, not Buildkite pipeline YAML, and Buildkite plugins don't run on it. Teams moving from Buildkite rewrite their pipelines as workflows. Pipelines that generate their steps at build time map most closely to GitHub Actions matrices whose values come from an earlier job's outputs.

Can Buildkite run GitHub Actions workflows?

In public preview. Buildkite's GitHub Actions Compatibility runs supported workflows from .github/workflows/ as Buildkite jobs, with limits: no pull_request_target, no workflow_run or repository_dispatch yet, and no reproduction of GitHub's runner images (source). On Diffinery, GitHub Actions is the native format.

Can I use Buildkite with Diffinery?

Buildkite's documented source control integrations are GitHub, GitLab and Bitbucket, and Diffinery isn't one of them. On Diffinery, jobs run on your instance's hosted runners in Cloudflare Containers or on your own machines with diffinery runner.

Is Diffinery cheaper than Buildkite?

Diffinery itself is free and open source; you pay Cloudflare for what your instance uses, which depends on your usage, so we don't quote a per-minute figure to compare. Buildkite charges per active user on Pro ($30 a month) plus hosted minutes at $0.004 per vCPU minute, or $3.50 a month per self-hosted agent after the first 10; with your own agents you also pay for the machines.

Which is faster, Diffinery or Buildkite?

We haven't benchmarked Buildkite and don't quote others' numbers as our own. With self-hosted agents, Buildkite's speed depends mostly on the machines you give it. Diffinery's measured stage times are on the Performance page.