diff --git a/tech_docs/CUE.md b/tech_docs/CUE.md index 0bac33a..36407a4 100644 --- a/tech_docs/CUE.md +++ b/tech_docs/CUE.md @@ -1,3 +1,46 @@ +Welcome to the world of **CUE** – *Configure-Unify-Execute* – a language that turns the usual “write YAML and pray” workflow into something that feels almost… serendipitous. + +In CUE you don’t *imperatively* build configs, websites, DB schemas, or API specs. +Instead you **declare** the shape, constraints and defaults you want, then let CUE’s graph-unification engine search the (enormous but finite) space of legal values and hand you back the *one* deterministic result that satisfies every rule. +That moment when `cue export` suddenly spits out the exact JSON or SQL DDL you needed? **Deterministic serendipity** – reproducible, cacheable, diff-able. + +A 30-second taste: + +```cue +package site + +#Page: { + title: string & =~"^[A-Z].*" + path: string & =~"^/[a-z0-9/-]+$" + meta: { + description: string & strings.MinRunes(30) & strings.MaxRunes(160) + keywords: [...string] & list.Unique() + } +} + +home: #Page & { + title: "Welcome to the World of CUE" + path: "/" + meta: keywords: ["cue", "configure", "unify", "execute"] +} +``` + +Run `cue export home` and you get the exact JSON your static-site generator needs, with every constraint already proven. +Change a single keyword and CUE re-unifies, yielding a *new* but still deterministic artefact. + +The same file can: + +* generate OpenAPI specs, Terraform, Kubernetes YAML +* validate incoming JSON requests at runtime +* spit out SQL DDL and Go structs (`cue get go`) or even HTML via a tiny script + +Because CUE merges **types, values and constraints** into one concept, the usual inheritance hell disappears: you compose by *unification* (`&`) instead of copy-paste or fragile overrides. + +So yes – in the CUE universe you write a handful of declarations, run `cue`, and the “accidental” correct configuration pops out every single time. +Raw deterministic serendipity, no runtime surprises, no “works on my machine”. + +--- + **CUE (Configure-Unify-Execute)** is an **open-source data constraint language** developed at Google, designed for **configuration management, validation, and templating**. It stands for **Configure, Unify, Execute**. ### Purpose