Why CUE?
CUE (Configure, Unify, Execute) provides something that YAML and JSON Schema cannot: types, constraints, and composition in a single language.- Type safety — Catch configuration errors before deployment
- Composable — Kits can extend and override each other
- Defaults — Sensible defaults reduce configuration burden
- Constraints — Express rules like “port must be > 1024” or “domain must be valid”
Three-layer architecture
Every StackKit follows a three-layer model:- OS Layer — Base operating system configuration, security hardening, networking
- Platform Layer — Container runtime (Docker Compose), standard networks, volumes
- Application Layer — Modular services that users select and configure
How validation works
When you runkombify validate, your kombination.yaml is checked against the CUE schema of your selected StackKit:
Schema loading
The StackKit’s CUE schema is loaded, including all layer definitions and constraints.
Unification
Your configuration is unified with the schema. CUE checks that every value satisfies its type and constraints.
Extending kits
StackKits are designed to be extended. You can:- Override defaults — Change any default value in your
kombination.yaml - Add services — Include additional services not in the base kit
- Customize layers — Modify OS or platform settings for your environment
Further reading
Spec-driven design
The philosophy behind declarative infrastructure
Available kits
Browse the StackKit catalog
