
Created kotlin dsl to define pipeline and bicep file
Tired of Azure Pipeline YAML failures caused by typos, indentation mistakes, and mismatched Bicep parameters? I was too — so I built a type-safe Kotlin alternative.
After spending a lot of time working with Azure DevOps and Bicep, I kept running into the same frustrating issues:
- YAML indentation errors breaking builds
- Misspelled property names that aren't caught until runtime
- Bicep parameter names not matching values passed from pipelines
- CI/CD failures caused by simple configuration mistakes
I wanted something that could catch these problems before they ever reached a build agent.
So I built KiKd — a Kotlin DSL for defining Azure DevOps pipelines and infrastructure with compile-time type safety.
🔗 https://github.com/OutOfBoundCats/KiKd
The goal is simple: leverage the compiler and IDE instead of relying on YAML and string-based configuration.
With KiKd you get:
- Compile-time validation
- IDE autocomplete
- Refactoring support
- Type-safe parameter passing
- Reduced risk of runtime configuration errors
- Define pipeline and infra in kotlin reference yml values in infra safetly It's still early-stage, but the core concepts are working and I'd love feedback from people who work with Azure DevOps and Bicep regularly.
A few questions:
- Does this solve a real pain point for you, or is your current Bicep/ARM workflow good enough?
- Would you consider using a Kotlin DSL, or would another language (TypeScript, Python, etc.) be more appealing?
- What features would make something like this viable in a production environment?
All feedback is welcome — including reasons why you think this approach isn't needed.