Our solution
Catch configuration mistakes in your editor before deploy
Cosmo Router configuration is YAML validated against the JSON Schema, with environment variable expansion and multi-file merging, so mistakes show up while you type.
Point the YAML language server at the router JSON Schema from the top of your file (see the official configuration docs for the exact `$schema` URL). VS Code with the Red Hat YAML extension and JetBrains IDEs pick up auto-completion, hover documentation, and invalid or deprecated values while you edit.
Use `${VAR_NAME}` placeholders in YAML for values that should come from the process environment. The router expands them before schema validation so tokens and other secrets do not need to live in the file you commit.
Pass several files through `CONFIG_PATH` as a comma-separated list (or pass `--config` multiple times). Each file is validated, then merged in order, and later files override earlier keys for the same setting, which covers base plus per-environment overlays without an external templating step.
Same binary everywhere, different overlay files per environment.

