Release & registry

A released design system is a versioned package, not copy-pasted code. You release from Milda; consumers install from a registry with npm install — just like any dependency.

#Release assembly

Releasing turns the generated output into installable packages. The release layer takes your design system — components plus theme — and produces a release plan: the set of packages and their package.json manifests. The assembly is pure and side-effect-free; a build service consumes the plan to build and publish.

  • Granularity is a choice — one package for the whole system, or per-component packages plus a shared theme.
  • Versioned — each release is reproducible from its IR, the basis for safe upgrades.

#The registry

Packages publish to a registry that speaks the npm protocol. Locally that's Verdaccio; the publish flow is URL- and token-agnostic, so a hosted registry is a configuration swap rather than a rewrite.

Consumers route only your scope to the private registry and leave everything else on the public npm registry — no mirroring, no risk to your other dependencies:

ini
# .npmrc
@your-scope:registry=https://registry.your-company.com
# all other packages continue to resolve from npmjs

#“No eject” — and you still own the code

Two things that sound contradictory are both true:

  • You own the output. Export is always available; the generated code is yours, unrestricted. That's the trust pillar.
  • You don't need to eject. Because the release pipeline — versioned packages, npm install, live updates — is seamless, ejecting is an escape hatch you rarely reach for, not a routine step.
Status
Release assembly is built. A local Verdaccio registry covers the publish/install loop today; hosted registry hosting and collaboration are on the roadmap.

For the broader open/paid split, see Editions & pricing.