base·project

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.

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