The pipeline
| Stage | What it does | What it doesn’t do |
|---|---|---|
| Brief | Captures user intent — copy, mood, audience, brand. | Doesn’t specify layout, type sizes, or color values. |
| Compile | Resolves intent against your BrandKit and the design system. Every choice is pinned. | Doesn’t render pixels. |
| Spec | Frozen JSON contract — colors as hex, fonts as IDs, positions in px. | Has no free variables. Identical Specs render identically. |
| Render | Pure transformation from Spec to pixels. | Makes no design decisions. |
What this means for you
Reproducibility — same input, same output
Reproducibility — same input, same output
A Spec is content-addressable. If you keep the Spec, you can re-render the exact pixels months later. There are no model temperature surprises.
Explainability — see every decision
Explainability — see every decision
Every compile step writes a
decisions log: why this font, why this color, which fallback fired. Audit trails come for free.Composition — branch and iterate cheaply
Composition — branch and iterate cheaply
Drafts are versioned. Branch a Draft, tweak the brief, recompile. The expensive part (render) is skipped until you preview.
Safety — the compiler enforces brand
Safety — the compiler enforces brand
Style-lock rules in your BrandKit are enforced at compile time. If a brief asks for a color that violates the lock, the compiler rejects it with
STYLE_LOCK_VIOLATION — before any pixels render.The API surface
One canonical endpoint, two modes:Sync preview
Async render
Signed image URLs — the shortcut
What you’ll meet across every endpoint
Authentication
Authorization: Bearer kyn_live_... on every request.Idempotency
Idempotency-Key: <uuid v4> on every POST mutation.Versioning
X-API-Version: 2026-01-01 pins the response shape.Rate limits
Tiered per endpoint category, surfaced in headers.