Skip to content

UIForge

UIForge is a specification-driven UI composition platform. Pages are described in UISpec — a deterministic JSON Intermediate Representation — validated against a versioned component registry, and rendered by interchangeable runtimes: React and standard web components via Lit.

The core idea: code defines component capabilities; the spec composes and configures them. Instead of hand-coding every screen, teams (and AI agents) author declarative PageSpecs that reference registered, contract-checked components — the model that powers customizable platforms like Salesforce Lightning, Splunk Dashboard Studio, and Shopify themes, as a vendor-neutral open foundation.

PageSpec JSON ──► Schema validation ──► Registry validation ──► Runtime engines ──► Renderer (React | Lit)

Why a UI Intermediate Representation?

Because the artifact is declarative JSON rather than framework code, a UIForge page can be:

  • Authored visually or edited as source
  • Generated by AI — an agent emits a valid PageSpec, never React code
  • Validated before deployment — schema, registry contracts, profile constraints
  • Version-controlled and reviewed in pull requests like any other artifact
  • Rendered consistently across runtimes, today React and Lit web components

What ships in v0.1

Layer What you get
UISpec IR PageSpec, ComponentInstance, five layout primitives, data bindings, interactions, navigation, visibility rules, themes — Go types as the source of truth with generated JSON Schemas
Component registry ComponentSpec manifests with property schemas, data inputs, events, and capabilities; 25 builtin manifests across four namespaces; external manifest loading and version resolution
Runtime engines ${...} expressions, page state, event→action interactions, PageSpec diffing — shared by all renderers
Two renderers @plexusone/uiforge-renderer (React) and @plexusone/uiforge-renderer-lit (<uiforge-page>), emitting an identical data-uiforge-* DOM contract
Data runtime Pluggable async connectors with loading/error states, caching, and declarative refresh
Design-system governance Semantic token contract integrated with design-system-spec, including white-label theming

Where to start