{"slug": "buildkite", "name": "Buildkite", "category": "infra", "category_name": "Infrastructure and DevOps", "description": "CI/CD platform that orchestrates pipelines on your own self-hosted build agents.", "recommenders": 7, "commenters": 11, "warners": 0, "score": 6.727, "rising": 0.36, "first": "2025-12-01", "latest": "2026-10-21", "why": "Liked for dynamic pipelines and easy, scalable self-hosted runners, often as a replacement for GitHub Actions or TeamCity.", "why_is_quote": false, "has_verdict": true, "sentiment": {"recommend": 7, "neutral": 5, "compare": 0, "warn": 0}, "spark": [0, 2, 0, 2, 0, 0, 1, 0, 0, 1, 0, 1], "listed": true, "loved": ["Self-hosted runners", "Dynamic pipelines"], "caveat": "Setup effort", "short_quote": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves.", "icon": true, "domain": null, "github_repo": null, "official_url": "https://buildkite.com", "pricing": "unknown", "aliases": ["Buildkite"], "verdict": [{"text": "Liked for dynamic pipelines", "cites": [{"id": 799647808, "item_id": 49977988, "url": "https://news.ycombinator.com/item?id=49977988", "by": "stingraycharles", "date": "2026-10-06", "stance": "recommend", "quote": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves.", "excerpt": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves. One of the things we really use heavily is dynamic pipelines, as we have a lot of different stuff. In teamcity, we had close to 1k build configs, and were able to replace this with about 20 dynamic pipelines in buildkite. We did need to do a bunch of plumbing, but in this age of AI it means our develope", "context": "team that had close to 1k build configs", "use_case": "CI/CD with dynamic pipelines", "switched_from": "TeamCity", "story": "JetBrains reports revenue growth, net financial loss for 2025"}, {"id": 750548385, "item_id": 46909274, "url": "https://news.ycombinator.com/item?id=46909274", "by": "habosa", "date": "2026-02-05", "stance": "recommend", "quote": "Buildkite is the best.", "excerpt": "Dead on. GitHub Actions is the worst CI tool I\u2019ve ever used (maybe tied with Jenkins) and Buildkite is the best. Buildkite\u2019s dynamic pipelines (the last item in the post) are so amazingly useful you\u2019ll wonder how you ever did without them. You can do super cool things like have your unit test step spawn a test de-flaking step only if a test fails. Or control test parallelism based on the code changes you\u2019re testing. ", "context": "", "use_case": "CI", "switched_from": "", "story": "GitHub Actions Is Slowly Killing Your Engineering Team"}, {"id": 750417504, "item_id": 46901094, "url": "https://news.ycombinator.com/item?id=46901094", "by": "gabrielgio", "date": "2026-02-05", "stance": "recommend", "quote": "Buildkite is really good. I use daily, don't have complain", "excerpt": "Nice writing. I can't add much to the pile on Github Action as I, thankfully, was spared from it, but I can say that Buildkite is really good. I use daily, don't have complain and they actually have meaningfully useful UI upgrades. We use a lot from his ability to dynamically uploads steps, which works just as you would expect. > And debugging? Buildkite doesn\u2019t make CI debugging fun. Nothing does. Nothing can. Sourc", "context": "", "use_case": "CI/CD", "switched_from": "", "story": "GitHub Actions Is Slowly Killing Your Engineering Team"}]}, {"text": " and easy, scalable self-hosted runners,", "cites": [{"id": 737736000, "item_id": 46108500, "url": "https://news.ycombinator.com/item?id=46108500", "by": "paulddraper", "date": "2025-12-01", "stance": "recommend", "quote": "I think Buildkite has been the only one to make this easy and scalable.", "excerpt": "This is documented currently (supposed to be 14 days). [1] That said, I have found runners to be unnecessarily difficult. But Jenkins and its own quirks, and when I used GitLab, it used ancient docker-machine and outdated AMIs by default. I think Buildkite has been the only one to make this easy and scalable. But it is meant for self hosted runners. [1] https://docs.github.com/en/enterprise-cloud@latest/actions/how-t", "context": "", "use_case": "self-hosted CI runners", "switched_from": "", "story": "Advent of Sysadmin 2025"}, {"id": 750548385, "item_id": 46909274, "url": "https://news.ycombinator.com/item?id=46909274", "by": "habosa", "date": "2026-02-05", "stance": "recommend", "quote": "Buildkite is the best.", "excerpt": "Dead on. GitHub Actions is the worst CI tool I\u2019ve ever used (maybe tied with Jenkins) and Buildkite is the best. Buildkite\u2019s dynamic pipelines (the last item in the post) are so amazingly useful you\u2019ll wonder how you ever did without them. You can do super cool things like have your unit test step spawn a test de-flaking step only if a test fails. Or control test parallelism based on the code changes you\u2019re testing. ", "context": "", "use_case": "CI", "switched_from": "", "story": "GitHub Actions Is Slowly Killing Your Engineering Team"}, {"id": 772507728, "item_id": 48281733, "url": "https://news.ycombinator.com/item?id=48281733", "by": "ElFitz", "date": "2026-05-26", "stance": "recommend", "quote": "I recently switched from GitHub Actions to Buildkite + self-hosted runners.", "excerpt": "I recently switched from GitHub Actions to Buildkite + self-hosted runners. Setting it all up would have been tediously annoying eight months ago (Buildkite requires setting up GitHub webhooks for each repo). Last week I just had codex set up everything, ephemeral vm runners and all, using a couple of low-spec refurb mac minis, Buildkite\u2019s API, a short-lived API token, and migrate my repositories one by one. So far s", "context": "", "use_case": "CI with self-hosted runners", "switched_from": "GitHub Actions", "story": "GitHub Actions down again today"}]}, {"text": " often as a replacement for GitHub Actions or TeamCity.", "cites": [{"id": 772507728, "item_id": 48281733, "url": "https://news.ycombinator.com/item?id=48281733", "by": "ElFitz", "date": "2026-05-26", "stance": "recommend", "quote": "I recently switched from GitHub Actions to Buildkite + self-hosted runners.", "excerpt": "I recently switched from GitHub Actions to Buildkite + self-hosted runners. Setting it all up would have been tediously annoying eight months ago (Buildkite requires setting up GitHub webhooks for each repo). Last week I just had codex set up everything, ephemeral vm runners and all, using a couple of low-spec refurb mac minis, Buildkite\u2019s API, a short-lived API token, and migrate my repositories one by one. So far s", "context": "", "use_case": "CI with self-hosted runners", "switched_from": "GitHub Actions", "story": "GitHub Actions down again today"}, {"id": 785212384, "item_id": 49075774, "url": "https://news.ycombinator.com/item?id=49075774", "by": "Jarred", "date": "2026-07-27", "stance": "neutral", "quote": "BuildKite is fine but I wouldn\u2019t be that surprised if we move off of BuildKite to a custom thing at some point.", "excerpt": "It spawns ephemeral EC2/Azure instances, which is a lot cheaper than the GitHub actions runners we used before that. We shard to a lot of machines for tests and I\u2019d be worried about running out if we used dedicated servers. BuildKite is fine but I wouldn\u2019t be that surprised if we move off of BuildKite to a custom thing at some point. Months ago, we switched from CMake to a handrolled typescript build system and it ma", "context": "works on Bun", "use_case": "CI for Bun", "switched_from": "GitHub Actions", "story": "How is the Bun Rewrite in Rust going?"}, {"id": 799647808, "item_id": 49977988, "url": "https://news.ycombinator.com/item?id=49977988", "by": "stingraycharles", "date": "2026-10-06", "stance": "recommend", "quote": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves.", "excerpt": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves. One of the things we really use heavily is dynamic pipelines, as we have a lot of different stuff. In teamcity, we had close to 1k build configs, and were able to replace this with about 20 dynamic pipelines in buildkite. We did need to do a bunch of plumbing, but in this age of AI it means our develope", "context": "team that had close to 1k build configs", "use_case": "CI/CD with dynamic pipelines", "switched_from": "TeamCity", "story": "JetBrains reports revenue growth, net financial loss for 2025"}, {"id": 789311408, "item_id": 49331963, "url": "https://news.ycombinator.com/item?id=49331963", "by": "jdub", "date": "2026-08-17", "stance": "recommend", "quote": "Buildkite has built a GitHub Actions adapter... a good first step out of the GitHub Actions supply chain attack trap.", "excerpt": "Buildkite has built a GitHub Actions adapter... a good first step out of the GitHub Actions supply chain attack trap.", "context": "", "use_case": "CI replacing GitHub Actions", "switched_from": "", "story": "Ask HN: Alternatives to GitHub"}]}, {"text": " The most common caveat is setup work, such as per-repo GitHub webhooks and custom plumbing,", "cites": [{"id": 772507728, "item_id": 48281733, "url": "https://news.ycombinator.com/item?id=48281733", "by": "ElFitz", "date": "2026-05-26", "stance": "recommend", "quote": "I recently switched from GitHub Actions to Buildkite + self-hosted runners.", "excerpt": "I recently switched from GitHub Actions to Buildkite + self-hosted runners. Setting it all up would have been tediously annoying eight months ago (Buildkite requires setting up GitHub webhooks for each repo). Last week I just had codex set up everything, ephemeral vm runners and all, using a couple of low-spec refurb mac minis, Buildkite\u2019s API, a short-lived API token, and migrate my repositories one by one. So far s", "context": "", "use_case": "CI with self-hosted runners", "switched_from": "GitHub Actions", "story": "GitHub Actions down again today"}, {"id": 799647808, "item_id": 49977988, "url": "https://news.ycombinator.com/item?id=49977988", "by": "stingraycharles", "date": "2026-10-06", "stance": "recommend", "quote": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves.", "excerpt": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves. One of the things we really use heavily is dynamic pipelines, as we have a lot of different stuff. In teamcity, we had close to 1k build configs, and were able to replace this with about 20 dynamic pipelines in buildkite. We did need to do a bunch of plumbing, but in this age of AI it means our develope", "context": "team that had close to 1k build configs", "use_case": "CI/CD with dynamic pipelines", "switched_from": "TeamCity", "story": "JetBrains reports revenue growth, net financial loss for 2025"}]}, {"text": " and it is built around bringing your own runners.", "cites": [{"id": 737736000, "item_id": 46108500, "url": "https://news.ycombinator.com/item?id=46108500", "by": "paulddraper", "date": "2025-12-01", "stance": "recommend", "quote": "I think Buildkite has been the only one to make this easy and scalable.", "excerpt": "This is documented currently (supposed to be 14 days). [1] That said, I have found runners to be unnecessarily difficult. But Jenkins and its own quirks, and when I used GitLab, it used ancient docker-machine and outdated AMIs by default. I think Buildkite has been the only one to make this easy and scalable. But it is meant for self hosted runners. [1] https://docs.github.com/en/enterprise-cloud@latest/actions/how-t", "context": "", "use_case": "self-hosted CI runners", "switched_from": "", "story": "Advent of Sysadmin 2025"}, {"id": 802947617, "item_id": 50184226, "url": "https://news.ycombinator.com/item?id=50184226", "by": "EduardoBautista", "date": "2026-10-21", "stance": "neutral", "quote": "I had to move my CI to Buildkite", "excerpt": "I switched all my repos to Cursor Origin when the last outage happened a couple of days ago. Origin is fast. It\u2019s comparable to moving from Jira to Linear. I highly recommend everyone try it. I had to move my CI to Buildkite and am also running a self-hosted windows runner, but other than that, most services I used such as cloudflare workers and code rabbit work with Origin. Claude was essential in getting all work i", "context": "", "use_case": "CI", "switched_from": "", "story": "Delays for Pull Requests and Webhook deliveries"}]}], "praise": [{"label": "Self-hosted runners", "summary": "Bringing your own runner pools is described as easy, scalable and rock-solid.", "quotes": [{"id": 737736000, "item_id": 46108500, "url": "https://news.ycombinator.com/item?id=46108500", "by": "paulddraper", "date": "2025-12-01", "stance": "recommend", "quote": "I think Buildkite has been the only one to make this easy and scalable.", "excerpt": "This is documented currently (supposed to be 14 days). [1] That said, I have found runners to be unnecessarily difficult. But Jenkins and its own quirks, and when I used GitLab, it used ancient docker-machine and outdated AMIs by default. I think Buildkite has been the only one to make this easy and scalable. But it is meant for self hosted runners. [1] https://docs.github.com/en/enterprise-cloud@latest/actions/how-t", "context": "", "use_case": "self-hosted CI runners", "switched_from": "", "story": "Advent of Sysadmin 2025"}, {"id": 750548385, "item_id": 46909274, "url": "https://news.ycombinator.com/item?id=46909274", "by": "habosa", "date": "2026-02-05", "stance": "recommend", "quote": "Buildkite is the best.", "excerpt": "Dead on. GitHub Actions is the worst CI tool I\u2019ve ever used (maybe tied with Jenkins) and Buildkite is the best. Buildkite\u2019s dynamic pipelines (the last item in the post) are so amazingly useful you\u2019ll wonder how you ever did without them. You can do super cool things like have your unit test step spawn a test de-flaking step only if a test fails. Or control test parallelism based on the code changes you\u2019re testing. ", "context": "", "use_case": "CI", "switched_from": "", "story": "GitHub Actions Is Slowly Killing Your Engineering Team"}, {"id": 799647808, "item_id": 49977988, "url": "https://news.ycombinator.com/item?id=49977988", "by": "stingraycharles", "date": "2026-10-06", "stance": "recommend", "quote": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves.", "excerpt": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves. One of the things we really use heavily is dynamic pipelines, as we have a lot of different stuff. In teamcity, we had close to 1k build configs, and were able to replace this with about 20 dynamic pipelines in buildkite. We did need to do a bunch of plumbing, but in this age of AI it means our develope", "context": "team that had close to 1k build configs", "use_case": "CI/CD with dynamic pipelines", "switched_from": "TeamCity", "story": "JetBrains reports revenue growth, net financial loss for 2025"}]}, {"label": "Dynamic pipelines", "summary": "Dynamically uploaded steps let one team replace about 1k build configs with 20 pipelines.", "quotes": [{"id": 799647808, "item_id": 49977988, "url": "https://news.ycombinator.com/item?id=49977988", "by": "stingraycharles", "date": "2026-10-06", "stance": "recommend", "quote": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves.", "excerpt": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves. One of the things we really use heavily is dynamic pipelines, as we have a lot of different stuff. In teamcity, we had close to 1k build configs, and were able to replace this with about 20 dynamic pipelines in buildkite. We did need to do a bunch of plumbing, but in this age of AI it means our develope", "context": "team that had close to 1k build configs", "use_case": "CI/CD with dynamic pipelines", "switched_from": "TeamCity", "story": "JetBrains reports revenue growth, net financial loss for 2025"}, {"id": 750548385, "item_id": 46909274, "url": "https://news.ycombinator.com/item?id=46909274", "by": "habosa", "date": "2026-02-05", "stance": "recommend", "quote": "Buildkite is the best.", "excerpt": "Dead on. GitHub Actions is the worst CI tool I\u2019ve ever used (maybe tied with Jenkins) and Buildkite is the best. Buildkite\u2019s dynamic pipelines (the last item in the post) are so amazingly useful you\u2019ll wonder how you ever did without them. You can do super cool things like have your unit test step spawn a test de-flaking step only if a test fails. Or control test parallelism based on the code changes you\u2019re testing. ", "context": "", "use_case": "CI", "switched_from": "", "story": "GitHub Actions Is Slowly Killing Your Engineering Team"}, {"id": 750417504, "item_id": 46901094, "url": "https://news.ycombinator.com/item?id=46901094", "by": "gabrielgio", "date": "2026-02-05", "stance": "recommend", "quote": "Buildkite is really good. I use daily, don't have complain", "excerpt": "Nice writing. I can't add much to the pile on Github Action as I, thankfully, was spared from it, but I can say that Buildkite is really good. I use daily, don't have complain and they actually have meaningfully useful UI upgrades. We use a lot from his ability to dynamically uploads steps, which works just as you would expect. > And debugging? Buildkite doesn\u2019t make CI debugging fun. Nothing does. Nothing can. Sourc", "context": "", "use_case": "CI/CD", "switched_from": "", "story": "GitHub Actions Is Slowly Killing Your Engineering Team"}]}, {"label": "GitHub Actions alternative", "summary": "Commenters moved off GitHub Actions to Buildkite, citing outages, cost and supply-chain risk.", "quotes": [{"id": 772507728, "item_id": 48281733, "url": "https://news.ycombinator.com/item?id=48281733", "by": "ElFitz", "date": "2026-05-26", "stance": "recommend", "quote": "I recently switched from GitHub Actions to Buildkite + self-hosted runners.", "excerpt": "I recently switched from GitHub Actions to Buildkite + self-hosted runners. Setting it all up would have been tediously annoying eight months ago (Buildkite requires setting up GitHub webhooks for each repo). Last week I just had codex set up everything, ephemeral vm runners and all, using a couple of low-spec refurb mac minis, Buildkite\u2019s API, a short-lived API token, and migrate my repositories one by one. So far s", "context": "", "use_case": "CI with self-hosted runners", "switched_from": "GitHub Actions", "story": "GitHub Actions down again today"}, {"id": 789311408, "item_id": 49331963, "url": "https://news.ycombinator.com/item?id=49331963", "by": "jdub", "date": "2026-08-17", "stance": "recommend", "quote": "Buildkite has built a GitHub Actions adapter... a good first step out of the GitHub Actions supply chain attack trap.", "excerpt": "Buildkite has built a GitHub Actions adapter... a good first step out of the GitHub Actions supply chain attack trap.", "context": "", "use_case": "CI replacing GitHub Actions", "switched_from": "", "story": "Ask HN: Alternatives to GitHub"}, {"id": 767006466, "item_id": 47937904, "url": "https://news.ycombinator.com/item?id=47937904", "by": "peterldowns", "date": "2026-04-28", "stance": "neutral", "quote": "soon moving to Buildkite for orchestration of our CI jobs", "excerpt": "Yup! Still haven't switched off of Github, but considering it at this point. If you're in my shoes, here's some tools we use that help: - https://github.com/sethvargo/ratchet for pinning external Actions/Workflows to specific commit hashes - https://www.warpbuild.com/ for much faster runners (also: runs-on/namespace/buildjet/blacksmith/depot/... take your pick) - soon moving to Buildkite for orchestration of our CI j", "context": "", "use_case": "CI orchestration", "switched_from": "GitHub Actions", "story": "GitHub Actions is the weakest link"}]}, {"label": "Overall quality", "summary": "Daily users call it really good, with useful UI upgrades and no complaints.", "quotes": [{"id": 750417504, "item_id": 46901094, "url": "https://news.ycombinator.com/item?id=46901094", "by": "gabrielgio", "date": "2026-02-05", "stance": "recommend", "quote": "Buildkite is really good. I use daily, don't have complain", "excerpt": "Nice writing. I can't add much to the pile on Github Action as I, thankfully, was spared from it, but I can say that Buildkite is really good. I use daily, don't have complain and they actually have meaningfully useful UI upgrades. We use a lot from his ability to dynamically uploads steps, which works just as you would expect. > And debugging? Buildkite doesn\u2019t make CI debugging fun. Nothing does. Nothing can. Sourc", "context": "", "use_case": "CI/CD", "switched_from": "", "story": "GitHub Actions Is Slowly Killing Your Engineering Team"}, {"id": 750548385, "item_id": 46909274, "url": "https://news.ycombinator.com/item?id=46909274", "by": "habosa", "date": "2026-02-05", "stance": "recommend", "quote": "Buildkite is the best.", "excerpt": "Dead on. GitHub Actions is the worst CI tool I\u2019ve ever used (maybe tied with Jenkins) and Buildkite is the best. Buildkite\u2019s dynamic pipelines (the last item in the post) are so amazingly useful you\u2019ll wonder how you ever did without them. You can do super cool things like have your unit test step spawn a test de-flaking step only if a test fails. Or control test parallelism based on the code changes you\u2019re testing. ", "context": "", "use_case": "CI", "switched_from": "", "story": "GitHub Actions Is Slowly Killing Your Engineering Team"}]}, {"label": "Workflow configuration", "summary": "Preferred over GitHub Actions for configuring workflows.", "quotes": [{"id": 740694225, "item_id": 46293389, "url": "https://news.ycombinator.com/item?id=46293389", "by": "peterldowns", "date": "2025-12-16", "stance": "recommend", "quote": "I'm more of a fan of Buildkite when it comes to configuring the workflows", "excerpt": "I'm happy to see they're investing in Actions \u2014 charging for it should help make sure it continues to work. It's a huge reason Github is so valuable: having the status checks run on every PR, automatically, is great. Even though I'm more of a fan of Buildkite when it comes to configuring the workflows, I still need something to kick them off when PRs change, etc. Charging a per-workflow-minute platform fee makes a lo", "context": "", "use_case": "configuring CI workflows", "switched_from": "", "story": "Pricing Changes for GitHub Actions"}]}], "caveats": [{"label": "Setup effort", "summary": "It needs GitHub webhooks for each repo and some plumbing to extend.", "quotes": [{"id": 772507728, "item_id": 48281733, "url": "https://news.ycombinator.com/item?id=48281733", "by": "ElFitz", "date": "2026-05-26", "stance": "recommend", "quote": "I recently switched from GitHub Actions to Buildkite + self-hosted runners.", "excerpt": "I recently switched from GitHub Actions to Buildkite + self-hosted runners. Setting it all up would have been tediously annoying eight months ago (Buildkite requires setting up GitHub webhooks for each repo). Last week I just had codex set up everything, ephemeral vm runners and all, using a couple of low-spec refurb mac minis, Buildkite\u2019s API, a short-lived API token, and migrate my repositories one by one. So far s", "context": "", "use_case": "CI with self-hosted runners", "switched_from": "GitHub Actions", "story": "GitHub Actions down again today"}, {"id": 799647808, "item_id": 49977988, "url": "https://news.ycombinator.com/item?id=49977988", "by": "stingraycharles", "date": "2026-10-06", "stance": "recommend", "quote": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves.", "excerpt": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves. One of the things we really use heavily is dynamic pipelines, as we have a lot of different stuff. In teamcity, we had close to 1k build configs, and were able to replace this with about 20 dynamic pipelines in buildkite. We did need to do a bunch of plumbing, but in this age of AI it means our develope", "context": "team that had close to 1k build configs", "use_case": "CI/CD with dynamic pipelines", "switched_from": "TeamCity", "story": "JetBrains reports revenue growth, net financial loss for 2025"}]}, {"label": "Self-hosting required", "summary": "It is meant for self-hosted runners, so you run your own machines.", "quotes": [{"id": 737736000, "item_id": 46108500, "url": "https://news.ycombinator.com/item?id=46108500", "by": "paulddraper", "date": "2025-12-01", "stance": "recommend", "quote": "I think Buildkite has been the only one to make this easy and scalable.", "excerpt": "This is documented currently (supposed to be 14 days). [1] That said, I have found runners to be unnecessarily difficult. But Jenkins and its own quirks, and when I used GitLab, it used ancient docker-machine and outdated AMIs by default. I think Buildkite has been the only one to make this easy and scalable. But it is meant for self hosted runners. [1] https://docs.github.com/en/enterprise-cloud@latest/actions/how-t", "context": "", "use_case": "self-hosted CI runners", "switched_from": "", "story": "Advent of Sysadmin 2025"}, {"id": 802947617, "item_id": 50184226, "url": "https://news.ycombinator.com/item?id=50184226", "by": "EduardoBautista", "date": "2026-10-21", "stance": "neutral", "quote": "I had to move my CI to Buildkite", "excerpt": "I switched all my repos to Cursor Origin when the last outage happened a couple of days ago. Origin is fast. It\u2019s comparable to moving from Jira to Linear. I highly recommend everyone try it. I had to move my CI to Buildkite and am also running a self-hosted windows runner, but other than that, most services I used such as cloudflare workers and code rabbit work with Origin. Claude was essential in getting all work i", "context": "", "use_case": "CI", "switched_from": "", "story": "Delays for Pull Requests and Webhook deliveries"}]}, {"label": "Needs a trigger", "summary": "One user still relies on GitHub to kick off runs when PRs change.", "quotes": [{"id": 740694225, "item_id": 46293389, "url": "https://news.ycombinator.com/item?id=46293389", "by": "peterldowns", "date": "2025-12-16", "stance": "recommend", "quote": "I'm more of a fan of Buildkite when it comes to configuring the workflows", "excerpt": "I'm happy to see they're investing in Actions \u2014 charging for it should help make sure it continues to work. It's a huge reason Github is so valuable: having the status checks run on every PR, automatically, is great. Even though I'm more of a fan of Buildkite when it comes to configuring the workflows, I still need something to kick them off when PRs change, etc. Charging a per-workflow-minute platform fee makes a lo", "context": "", "use_case": "configuring CI workflows", "switched_from": "", "story": "Pricing Changes for GitHub Actions"}]}, {"label": "Debugging", "summary": "One commenter notes it doesn't make CI debugging easier and prefers SSH access to job VMs.", "quotes": [{"id": 750417504, "item_id": 46901094, "url": "https://news.ycombinator.com/item?id=46901094", "by": "gabrielgio", "date": "2026-02-05", "stance": "recommend", "quote": "Buildkite is really good. I use daily, don't have complain", "excerpt": "Nice writing. I can't add much to the pile on Github Action as I, thankfully, was spared from it, but I can say that Buildkite is really good. I use daily, don't have complain and they actually have meaningfully useful UI upgrades. We use a lot from his ability to dynamically uploads steps, which works just as you would expect. > And debugging? Buildkite doesn\u2019t make CI debugging fun. Nothing does. Nothing can. Sourc", "context": "", "use_case": "CI/CD", "switched_from": "", "story": "GitHub Actions Is Slowly Killing Your Engineering Team"}]}, {"label": "Possible outgrowing", "summary": "The Bun team calls it fine but may move to a custom system.", "quotes": [{"id": 785212384, "item_id": 49075774, "url": "https://news.ycombinator.com/item?id=49075774", "by": "Jarred", "date": "2026-07-27", "stance": "neutral", "quote": "BuildKite is fine but I wouldn\u2019t be that surprised if we move off of BuildKite to a custom thing at some point.", "excerpt": "It spawns ephemeral EC2/Azure instances, which is a lot cheaper than the GitHub actions runners we used before that. We shard to a lot of machines for tests and I\u2019d be worried about running out if we used dedicated servers. BuildKite is fine but I wouldn\u2019t be that surprised if we move off of BuildKite to a custom thing at some point. Months ago, we switched from CMake to a handrolled typescript build system and it ma", "context": "works on Bun", "use_case": "CI for Bun", "switched_from": "GitHub Actions", "story": "How is the Bun Rewrite in Rust going?"}]}], "who": [{"by": "stingraycharles", "context": "team that had close to 1k build configs", "url": "https://news.ycombinator.com/item?id=49977988", "date": "2026-10-06"}, {"by": "steveklabnik", "context": "works on Jujutsu/ERSC team", "url": "https://news.ycombinator.com/item?id=49546387", "date": "2026-09-03"}, {"by": "Jarred", "context": "works on Bun", "url": "https://news.ycombinator.com/item?id=49075774", "date": "2026-07-27"}], "tags": ["self-hostable", "GitHub Actions alternative", "for many pipelines", "for large test suites"], "use_cases": ["ci", "ci/cd", "ci/cd with dynamic pipelines", "ci replacing github actions", "ci for bun", "ci with self-hosted runners"], "compared": [{"slug": "github-actions", "name": "GitHub Actions", "co": 10, "switched_from": 3, "switched_to": 0}, {"slug": "woodpecker-ci", "name": "Woodpecker CI", "co": 1, "switched_from": 0, "switched_to": 1}, {"slug": "warpbuild", "name": "WarpBuild", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "jenkins", "name": "Jenkins", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=50182130", "title": "Delays for Pull Requests and Webhook deliveries", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49977072", "title": "JetBrains reports revenue growth, net financial loss for 2025", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49525297", "title": "The creator of Jujutsu has joined ERSC", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49331033", "title": "Ask HN: Alternatives to GitHub", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=49067854", "title": "How is the Bun Rewrite in Rust going?", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48278374", "title": "GitHub Actions down again today", "mentions": 1}], "sentiment_by_month": {"2025-11": {}, "2025-12": {"recommend": 2}, "2026-01": {"neutral": 1}, "2026-02": {"recommend": 2}, "2026-03": {}, "2026-04": {"neutral": 1}, "2026-05": {"recommend": 1}, "2026-06": {}, "2026-07": {"neutral": 1}, "2026-08": {"recommend": 1}, "2026-09": {"neutral": 1}, "2026-10": {"recommend": 1, "neutral": 1}}, "quotes": [{"id": 802947617, "item_id": 50184226, "url": "https://news.ycombinator.com/item?id=50184226", "by": "EduardoBautista", "date": "2026-10-21", "stance": "neutral", "quote": "I had to move my CI to Buildkite", "excerpt": "I switched all my repos to Cursor Origin when the last outage happened a couple of days ago. Origin is fast. It\u2019s comparable to moving from Jira to Linear. I highly recommend everyone try it. I had to move my CI to Buildkite and am also running a self-hosted windows runner, but other than that, most services I used such as cloudflare workers and code rabbit work with Origin. Claude was essential in getting all work i", "context": "", "use_case": "CI", "switched_from": "", "story": "Delays for Pull Requests and Webhook deliveries"}, {"id": 799647808, "item_id": 49977988, "url": "https://news.ycombinator.com/item?id=49977988", "by": "stingraycharles", "date": "2026-10-06", "stance": "recommend", "quote": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves.", "excerpt": "We migrated to buildkite, as it allowed self hosted agents and lots of \u201cbuilding blocks\u201d to extend stuff ourselves. One of the things we really use heavily is dynamic pipelines, as we have a lot of different stuff. In teamcity, we had close to 1k build configs, and were able to replace this with about 20 dynamic pipelines in buildkite. We did need to do a bunch of plumbing, but in this age of AI it means our develope", "context": "team that had close to 1k build configs", "use_case": "CI/CD with dynamic pipelines", "switched_from": "TeamCity", "story": "JetBrains reports revenue growth, net financial loss for 2025"}, {"id": 792742192, "item_id": 49546387, "url": "https://news.ycombinator.com/item?id=49546387", "by": "steveklabnik", "date": "2026-09-03", "stance": "neutral", "quote": "We use Buildkite internally", "excerpt": "We plan on building everything as individual building blocks, that you can use or not use as you wish. Initially we won't be offering our own CI directly, you'll bring your own. We use Buildkite internally, so we'll probably share that integration first, but fundamentally you can do whatever you'd like. We won't require you to use whatever first-party offering we end up with.", "context": "works on Jujutsu/ERSC team", "use_case": "CI", "switched_from": "", "story": "The creator of Jujutsu has joined ERSC"}, {"id": 789311408, "item_id": 49331963, "url": "https://news.ycombinator.com/item?id=49331963", "by": "jdub", "date": "2026-08-17", "stance": "recommend", "quote": "Buildkite has built a GitHub Actions adapter... a good first step out of the GitHub Actions supply chain attack trap.", "excerpt": "Buildkite has built a GitHub Actions adapter... a good first step out of the GitHub Actions supply chain attack trap.", "context": "", "use_case": "CI replacing GitHub Actions", "switched_from": "", "story": "Ask HN: Alternatives to GitHub"}, {"id": 785212384, "item_id": 49075774, "url": "https://news.ycombinator.com/item?id=49075774", "by": "Jarred", "date": "2026-07-27", "stance": "neutral", "quote": "BuildKite is fine but I wouldn\u2019t be that surprised if we move off of BuildKite to a custom thing at some point.", "excerpt": "It spawns ephemeral EC2/Azure instances, which is a lot cheaper than the GitHub actions runners we used before that. We shard to a lot of machines for tests and I\u2019d be worried about running out if we used dedicated servers. BuildKite is fine but I wouldn\u2019t be that surprised if we move off of BuildKite to a custom thing at some point. Months ago, we switched from CMake to a handrolled typescript build system and it ma", "context": "works on Bun", "use_case": "CI for Bun", "switched_from": "GitHub Actions", "story": "How is the Bun Rewrite in Rust going?"}, {"id": 772507728, "item_id": 48281733, "url": "https://news.ycombinator.com/item?id=48281733", "by": "ElFitz", "date": "2026-05-26", "stance": "recommend", "quote": "I recently switched from GitHub Actions to Buildkite + self-hosted runners.", "excerpt": "I recently switched from GitHub Actions to Buildkite + self-hosted runners. Setting it all up would have been tediously annoying eight months ago (Buildkite requires setting up GitHub webhooks for each repo). Last week I just had codex set up everything, ephemeral vm runners and all, using a couple of low-spec refurb mac minis, Buildkite\u2019s API, a short-lived API token, and migrate my repositories one by one. So far s", "context": "", "use_case": "CI with self-hosted runners", "switched_from": "GitHub Actions", "story": "GitHub Actions down again today"}, {"id": 767006466, "item_id": 47937904, "url": "https://news.ycombinator.com/item?id=47937904", "by": "peterldowns", "date": "2026-04-28", "stance": "neutral", "quote": "soon moving to Buildkite for orchestration of our CI jobs", "excerpt": "Yup! Still haven't switched off of Github, but considering it at this point. If you're in my shoes, here's some tools we use that help: - https://github.com/sethvargo/ratchet for pinning external Actions/Workflows to specific commit hashes - https://www.warpbuild.com/ for much faster runners (also: runs-on/namespace/buildjet/blacksmith/depot/... take your pick) - soon moving to Buildkite for orchestration of our CI j", "context": "", "use_case": "CI orchestration", "switched_from": "GitHub Actions", "story": "GitHub Actions is the weakest link"}, {"id": 750548385, "item_id": 46909274, "url": "https://news.ycombinator.com/item?id=46909274", "by": "habosa", "date": "2026-02-05", "stance": "recommend", "quote": "Buildkite is the best.", "excerpt": "Dead on. GitHub Actions is the worst CI tool I\u2019ve ever used (maybe tied with Jenkins) and Buildkite is the best. Buildkite\u2019s dynamic pipelines (the last item in the post) are so amazingly useful you\u2019ll wonder how you ever did without them. You can do super cool things like have your unit test step spawn a test de-flaking step only if a test fails. Or control test parallelism based on the code changes you\u2019re testing. ", "context": "", "use_case": "CI", "switched_from": "", "story": "GitHub Actions Is Slowly Killing Your Engineering Team"}, {"id": 750417504, "item_id": 46901094, "url": "https://news.ycombinator.com/item?id=46901094", "by": "gabrielgio", "date": "2026-02-05", "stance": "recommend", "quote": "Buildkite is really good. I use daily, don't have complain", "excerpt": "Nice writing. I can't add much to the pile on Github Action as I, thankfully, was spared from it, but I can say that Buildkite is really good. I use daily, don't have complain and they actually have meaningfully useful UI upgrades. We use a lot from his ability to dynamically uploads steps, which works just as you would expect. > And debugging? Buildkite doesn\u2019t make CI debugging fun. Nothing does. Nothing can. Sourc", "context": "", "use_case": "CI/CD", "switched_from": "", "story": "GitHub Actions Is Slowly Killing Your Engineering Team"}, {"id": 746351776, "item_id": 46646986, "url": "https://news.ycombinator.com/item?id=46646986", "by": "sethammons", "date": "2026-01-16", "stance": "neutral", "quote": "We used buildkite, so each project had its own buildkite.yml.", "excerpt": "While good points are made, I worry this gives the wrong impression. The paper doesn't say it is impossible, just hard. I have, very successfully, worked with dev owned testing. Why it worked: the team set the timelines for delivery of software, the team built their acceptance and integration tests based on system inputs and outputs based on the edges of their systems, the team owned being on-call, and the team autom", "context": "", "use_case": "CI/CD", "switched_from": "", "story": "Dev-Owned Testing: Why It Fails in Practice and Succeeds in Theory"}, {"id": 740694225, "item_id": 46293389, "url": "https://news.ycombinator.com/item?id=46293389", "by": "peterldowns", "date": "2025-12-16", "stance": "recommend", "quote": "I'm more of a fan of Buildkite when it comes to configuring the workflows", "excerpt": "I'm happy to see they're investing in Actions \u2014 charging for it should help make sure it continues to work. It's a huge reason Github is so valuable: having the status checks run on every PR, automatically, is great. Even though I'm more of a fan of Buildkite when it comes to configuring the workflows, I still need something to kick them off when PRs change, etc. Charging a per-workflow-minute platform fee makes a lo", "context": "", "use_case": "configuring CI workflows", "switched_from": "", "story": "Pricing Changes for GitHub Actions"}, {"id": 737736000, "item_id": 46108500, "url": "https://news.ycombinator.com/item?id=46108500", "by": "paulddraper", "date": "2025-12-01", "stance": "recommend", "quote": "I think Buildkite has been the only one to make this easy and scalable.", "excerpt": "This is documented currently (supposed to be 14 days). [1] That said, I have found runners to be unnecessarily difficult. But Jenkins and its own quirks, and when I used GitLab, it used ancient docker-machine and outdated AMIs by default. I think Buildkite has been the only one to make this easy and scalable. But it is meant for self hosted runners. [1] https://docs.github.com/en/enterprise-cloud@latest/actions/how-t", "context": "", "use_case": "self-hosted CI runners", "switched_from": "", "story": "Advent of Sysadmin 2025"}]}