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 buildnpm run build:polaris— same for Polarisnpm run check:themed-nav— sidebar hrefs must resolve to apage.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.