byronwade/ui

Guides · Monorepo

One repo, three surfaces

The registry site, Linear product demo, and Polaris admin demo share one npm workspace. Skins preview in-place on the main site; full demos live in sibling apps.

Layout

Apps

  • Main npm run dev — house warm tokens plus optional Linear/Polaris skins via the header Skin toggle.
  • Linear npm run dev:linear hub explains Skin toggle vs the sibling demo.
  • Polaris npm run dev:polaris hub for the admin demo.

Skin sync

After editing themed-app component CSS, regenerate the main-site skin layers:

Both generators use a brace-aware CSS walker (selectors only). npm run validate includes skin sync checks plus themed-nav href resolution.

Quality gates

  • npm run build:linear — themed-nav, slots, catalog, visual, production build
  • npm run build:polaris — same for Polaris
  • npm run check:themed-nav — sidebar hrefs must resolve to a page.tsx

Deployment

Main registry deploys from the repo root. Linear and Polaris are separate Vercel projects with root directories apps/linear and apps/polaris (basePath /linear / /polaris). Locally, run themed apps on their own ports — do not collide with npm run dev.