{
"$type": "site.standard.document",
"bskyPostRef": {
"cid": "bafyreigfsqworfe5vxvslyqvf3jufdsp7mac3encqrc2rhta4mdn6rmvda",
"uri": "at://did:plc:kbsenndul3hp5zagrexczjhs/app.bsky.feed.post/3mlncvnef3k32"
},
"coverImage": {
"$type": "blob",
"ref": {
"$link": "bafkreidq7rsn77iobjrd5eqf7ezrgyym3n43tthiku5s2h7btnxke3eyom"
},
"mimeType": "image/png",
"size": 80498
},
"path": "/notes/an-ice-cold-take-on-ci-config-systems/",
"publishedAt": "2026-05-11T13:40:00.000Z",
"site": "https://v5.chriskrycho.com",
"tags": [
"Assumed audience",
"Bluesky",
"Mastodon",
"LinkedIn",
"Pkl",
"Dhall",
"CI Dream",
"CI in a Box",
"Modern CI is Too Complicated and Misdirected",
"RWX",
"Build Systems à la Carte"
],
"textContent": "_My opinion on YAML probably won’t surprise you. _\n\n**Assumed audience:** People familiar at a basic level with YAML and its use in continuous integration and deployment systems like GitHub Actions.\n\n* * *\n\nYAML pipelines are a pit of failure for CI/CD pipelines. They attract people because they seem declarative and the syntax is “easy”, and they have become “standard”, but everyone ends up encoding subroutines and data flow into them — and YAML is a terrible programming language!\n\n* * *\n\nI posted this on social media (Bluesky, Mastodon, LinkedIn) and it generated some good discussions. Most of all: what’s the alternative? Nothing _super_ mainstream, but I find Pkl and Dhall both quite interesting, and both of them can spit out YAML, JSON, etc., which means you can use them _with_ your existing CI system if you so desire. That doesn’t address the other problems with most of today’s CI systems, but it’s a good step and adopting one of them _does_ address many of the problems of YAML while maintaining many of the benefits of a more declarative/limited language.\n\nOther things to read about that suggest interesting alternatives in the CI space itself:\n\n * Alexey Kladov’s CI Dream and CI in a Box posts\n * Gregory Szorc’s Modern CI is Too Complicated and Misdirected\n * RWX, which _uses_ YAML but with some better/more sensible primitives than most of the major CI providers\n * Build Systems à la Carte, arguably _the_ canonical paper on the subject\n\n\n\n* * *\n\nThanks for reading my feed! Thoughts, comments, or questions? Shoot me an email!\n *[ YAML]: Yet Another Markup Language\n *[YAML]: Yet Another Markup Language\n *[CI]: continuous integration\n *[CD]: continuous delivery\n *[JSON]: JavaScript object notation",
"title": "[notes] An Ice Cold Take on CI Config Systems",
"updatedAt": "2026-05-11T13:40:00.000Z"
}