I've been looking at tools like dhall[0] over the past week to create more maintainable complex configuration files, and avoid repeating myself.
In any sufficiently sophisticated setup (kubernetes, the serverless framework, in-house tools) I find that configuration files can begin to grow out of control and become a maintenance nightmare, and custom tooling invariable emerges. I was looking into adding Dhall to our build pipeline to drastically shrink our configuration files, but encountered a few problems:
1. Everybody would have to learn dhall, which adds cognitive overhead to the engineering team
2. Installing dhall is an exceptionally involved procedure in our CI/CD pipeline, whereas we're already using JavaScript
So after considering how best to design a JavaScript-esque DSL and parse it without too much overhead, I figured that just loading in standard CommonJS code at runtime would be significantly easier.
I know it's a bit small in scope for a Show HN entry, but I'm certainly getting a lot of use out of it and wanted to share.
I'm always happy to hear constructive criticism and other thoughts on this!
--- 0: https://dhall-lang.org/