The base project
Ship the product, not the plumbing.
One shared core across web and native. Seven thin starters you fork per product. This site is starter #1 — the reference every other starter is copied from.
A thin shell, by rule
A starter holds routes, brand, content and one product.config. Everything else lives in core — enforced mechanically, not by convention.
Core you compose
Mount modules by listing them in product.config. The kit resolves what each ships on web and native; you never wire it by hand.
Static by default
This starter builds to plain HTML and JS. No server, no backend SDK — drop it on any static host.
Analytics, always on
Every starter instruments the single analytics seam at boot. A build without it fails CI — measuring the free-v1 bet is not optional.
Live from core: the theme module seam
Mounted via product.config.ts → rendered through @base/design-tokens. Current mode system, resolved light.
primaryaccentsuccesswarninginfodestructive
- product id
marketing-website- framework
next- surface
web(from@base/config)- modules
theme
Fork it and make it yours.
Change the brand seam, point the tokens at your palette, and deploy. What to touch — and what never to — is in the docs.
Get started