Tools for running systems, built so the risky change is the hard one to make by accident.
English · 한국어
Most of what we work on starts the same way: something important is configured by hand, on a box, and the only record of why it looks like that is the person who did it. These projects turn that into something you can read, review, and undo.
Whatever the subject, they take the same shape — you declare the state you want, the tool shows you what will change, and it applies that change in a way you can back out of.
| Desired state, not commands | You declare what should be true. Reconciliation is the tool's job, and it only ever touches what it manages. |
| Plan before apply | Every change is previewable. You see the impact before anything moves. |
| Safe by construction | Rollback timers, commit/confirm, verification after the change lands. The move that breaks things is hard to make by accident. |
| Equal-power surfaces | GUI, API, and CLI are the same product. Nothing is only clickable, nothing is only scriptable. |
| Light on dependencies | Few moving parts, boring stacks, and no runtime you have to adopt to get value. |
| Open by default | Apache-2.0, public issue trackers, and READMEs that admit what is not finished yet. |
| parallax | Split-horizon DNS control plane — one desired state for internal DNS and Cloudflare |
| barycenter | A control plane for nginx — HTTP, TCP, and UDP reverse proxying and load balancing |
| heliopause | A host firewall you can't lock yourself out of — declarative nftables with auto-rollback |
More are on their way here. Each repository's own README is the source of truth for what it does and how finished it is.
Issues and pull requests are welcome on any repository. If you are running one of these in anger and something is missing, an issue describing your setup is more useful than a feature request in the abstract.