{
  "$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"
}