Currently I'm working on documentation, trying to explain (and sort of figure out for myself) why I spent the last 2 years developing a declarative scripting framework called 'freckles' ( <a href="https://freckles.io" rel="nofollow">https://freckles.io</a> ).<p>The code is at a state now that I'm happy enough with (at least to prove the concept), but I realized that it is not as obvious to other people why a thing like it should exist than it has been to me.<p>I was working as programmer as well as a sys-admin-type years before DevOps became a thing, and I always thought there was something missing. We are automating a lot of stuff, but not up to the 'last mile', there is always some manual requirement install or preparation necessary. And I always thought that once we can wrap <i>every</i> single one of the tasks 'around' a software project into a re-usable, formalized structure, it would make a lot of things easier, and open up lots of possibilities that are hidden from our views for now.<p>Basically, I think we should be able to create any desired state in a specific computational environment (physical machine, VM, container, filesystem, infrastructure, ...) using a single instruction, and one (optional) dictionary-type structure for arguments. Be it trivial (like make sure a folder exists) or fairly involved (setup a complete Wordpress instance incl. reverse proxy, Letsencrypt cert, firewall, ...).<p>There are technologies that help with some of the issues I have (Docker, K8s, Terraform, config-management ...), but it feels like they all have a slightly off-target focus and priority for what I have in mind.<p>I'm still struggling to find the right words (as you can probably see) to explain the what and why, but it's an interesting experience working on basically reverse-engineering something I think is important but can't express (it's like trying to explain a color). Gaining a lot of understanding about the problem too. And the funny thing is, I don't think I could have done all that before I went ahead and actually implemented the/my solution to the problem itself.