DevOps & Configuration
Configuration has an unpleasant property: most of it is only validated at deploy time, by the system that consumes it. A misindented Kubernetes manifest, a cron expression that means something other than you assumed, or an environment file with a duplicated key all pass the editor and fail later, often in a pipeline ten minutes after a push. These tools move that feedback into the moment you are writing the file, without uploading it to a build service.
Tools (12)
Config fails late, so check it early
Dockerfile Formatter, Kubernetes Manifest Validator and GitHub Actions Validator parse a file the way its real consumer will, catching the structural mistakes that otherwise surface as a failed pipeline. A manifest that parses is not necessarily correct, but a manifest that does not parse is definitely wrong, and learning that locally costs seconds instead of a full CI round trip and a queue wait.
Cron is easy to write and easy to misread
Five fields hide a surprising amount of ambiguity. Day-of-month and day-of-week are combined with OR when both are restricted, ranges and steps interact in ways that are not obvious, and the gap between a weekly and a monthly schedule is one character. Cron Parser translates an expression into a plain sentence, and Cron Builder assembles one from fields you can read, so the intent and the expression can be compared directly.
Shifting the rest of it left
.env File Tool catches duplicate and malformed keys before they silently shadow one another at runtime. Docker Run to Compose converts a long docker run invocation into a Compose service, quoting ports and environment values so a YAML 1.1 parser does not reinterpret 22:22 as a number. chmod Calculator converts between symbolic and octal permissions when a deployment script needs the other form.
Cheat sheets
Guides
FAQ
My Kubernetes manifest parses but behaves unexpectedly. Why?
Parsing only proves the YAML is well formed. A value can still be the wrong type, most commonly when an unquoted scalar such as a port pair or a version is read as a number, or when indentation nests a key under the wrong parent.
When both day fields are set, does a cron job run on either or both?
Either. When day-of-month and day-of-week are both restricted, standard cron combines them with OR, so the job fires on any day matching one of them. That surprises people expecting the two conditions to be ANDed together.
Can I turn an existing docker run command into a Compose file?
Yes. Docker Run to Compose tokenizes the command the way a shell would, so quoted values and line continuations survive, and it emits a service block with ports and environment values quoted so they keep their intended type.
Why do ports need quoting in a Compose file?
Because a YAML 1.1 parser reads 22:22 as a sexagesimal number rather than a port mapping. Quoting keeps it a string, which is why the converter quotes every port and environment value it writes rather than leaving it to chance.