The stack
06 · Design system
Every Exo app uses shadcn/ui components with the Structured Liquidity theme; websites and pages are built and published in Construct.
- Dimension
- 06 · Design system
- Platform
- shadcn/ui + Structured Liquidity + Construct
- shadcn/ui
- Open component foundation used through the Structured Liquidity design system. Ecosystem standard · authority: Shared
- Structured Liquidity
- The shared theme and tokens every Exo app and Construct page uses. Core standard · authority: Structured Liquidity
- Construct
- Content management for websites, landing pages, marketing sites, and comparison pages. Ecosystem standard · authority: Construct
- Status
- Design system: Live. Enforced in this repository by pnpm check:ui-system, which runs inside pnpm lint. Pages: Construct is live on staging at staging.exo.now/construct; Pages stage at staging.construct.page.
What it is
Every app uses the same open-source components, styled with the Structured Liquidity theme (the stack description on exo.now). The Structured Liquidity foundation is mandatory for every Exo-managed application, Exo-owned interface, management surface, and first-party template (design standard).
Pages
Landing pages, marketing sites, and comparison pages are written, laid out, and published in Construct, Exo's content management system for websites. Construct owns presentation and page organization; Exo owns function (identity, deployment, access, data, and exo-router). Components and theming are a separate dimension: Design system.
Platform
- shadcn/ui is the open component foundation. Managed frontend work starts from the
repository's shadcn configuration (
components.json,new-yorkbaseline) and composes primitives fromsrc/components/uiinstead of raw interactive controls. - Structured Liquidity is the shared theme and tokens every Exo app and Construct page uses. Its three dimensions are Neobrutalist structure, Liquid motion, and Scientific modern clarity, and Construct is its canonical first-party expression.
Pages
- Construct is a first-party Interspace App and the Page platform (catalog layer: CMS, authority Construct).
- Puck is open-source visual page composition inside Construct.
Boundary and replaceability
- One foundation, many expressions. Tenants may replace palette, typography, imagery, and content density through their documented token and brand contracts, but they must keep the Structured Liquidity and shadcn component foundation and the platform accessibility, responsiveness, performance, and semantic-control rules.
- Controlled visual vocabulary. No more than two actual typefaces mapped to display, body, and
detail roles, seven semantic size tiers, four weight tiers, and semantic color roles instead of
component-local values. Exo-owned surfaces keep
--radius: 0px. - Design exports as tokens. Design is part of the tenant export (portability).
Pages
- Construct owns Page and website editing, Puck, publishing, Page authorization, and authenticated Surfaces, on its own Convex-native model, with no Payload (ADR 0003).
- Exo knows Pages only as typed resources for grants, routing, deployment evidence, and aggregate policy (architecture).
- Portability: the tenant export includes Puck data plus the component contract and migrations needed to interpret it, and a framework-neutral static HTML fallback for published pages (portability).
Cost notes
shadcn/ui is open source. Structured Liquidity is first-party. No cost figure is recorded: TBD.
Pages
Construct operating cost per site: TBD. Puck is open source. Construct's AI generation goes
through exo-router (endpoint POST /v1/ai/generate), so its model
spend is recorded in exoAiBrokerJobs.
Status
- Live and enforced:
node scripts/check-structured-liquidity-ui.mjschecks the shadcn configuration, required primitives, and foundation tokens, andnode scripts/check-visual-vocabulary.mjsratchets inherited raw font, size, weight, and color declarations against a baseline. Both run throughpnpm check:ui-systeminsidepnpm lint. - These docs use the same tokens:
src/app/(docs)/docs.cssmaps Fumadocs tokens onto the Exo tokens (maintaining these docs).
Pages
- Live: Construct App at
https://staging.exo.now/construct, verified at Construct commit875ac2e. Construct-managed Pages stage athttps://staging.construct.page/{page}, migrating Page by Page (staging topology).