How Milda works

Milda is structured as a classic three-stage compiler. Understanding that shape explains nearly every design decision in the product.

#The pipeline

text
visual editor   →   IR (canonical model)   →   generators   →   targets
(FRONT-END)         (single source of truth)    (BACK-ENDS)      React · Figma · …

Each stage has one job, and the boundary between them is strict. That strictness is what lets one design system reach many platforms without forking.

#Front-end: the editor

The Studio is the authoring surface. You compose components, define foundations, and wire up behavior visually. Crucially, the editor's data model is the IR itself — a thin view over the canonical model, not a separate editor state that has to be translated. There is no impedance mismatch between “what you edited” and “what gets generated.”

#The IR: the single source of truth

The intermediate representation is a platform-neutral description of your whole design system — components, structure, contracts, and foundations. It carries no web-specific concepts: no CSS, no HTML tags, no framework APIs. Anything platform-specific lives in a generator's realization of the IR, never in the IR itself.

Read more in The IR.

#Back-ends: generators

A generator consumes the IR and emits something concrete. The React generator emits self-contained component source plus a shared theme. A new target — Figma, Vue, native — slots in as another back-end without touching the IR or the editor. See Generators.

#Two principles that follow

  • The data model is the model. The editor edits the IR directly. No adapter layer means no drift between what you see and what you ship.
  • Vertical slice before breadth. The spine is one component going edit → generate → render end-to-end, rather than a complete editor with no generator (or vice versa).
Why this matters for you
The compiler shape is also why these docs can embed live Studio components: the editor UI and its runtime are ordinary packages over the IR, so they run anywhere React runs — including on this page.