Next.js 16 starter
Ship consistent sites, fast.
Server components, cached pages, staggered reveals, and a token-driven contrast system — all wired up before you write a line.
- Production-grade defaults
- Tokens, never hardcoded colours
- Deploys straight to Vercel
use cache
Static pages cached whole; fresh data streams via Suspense.
Next 16<Stagger as='ul'>
Scroll reveals on semantic HTML, zero wrappers.
MotionServer actions
Typed useActionState forms, colocated per route.
Next 16OverlapCta
A primary card straddling the seam between bands.
Blocksuse cache
Static pages cached whole; fresh data streams via Suspense.
Next 16<Stagger as='ul'>
Scroll reveals on semantic HTML, zero wrappers.
MotionServer actions
Typed useActionState forms, colocated per route.
Next 16OverlapCta
A primary card straddling the seam between bands.
Blockscontrast-on
One class flips every token in the subtree.
TokensFloating fields
Input, Textarea, Select with the peer-label pattern.
FormsBlocks & cards
Prop-driven sections; copy lives only in data/.
System@mrbrandme registry
shadcn add @mrbrandme/hero-marquee — like this one.
Registrycontrast-on
One class flips every token in the subtree.
TokensFloating fields
Input, Textarea, Select with the peer-label pattern.
FormsBlocks & cards
Prop-driven sections; copy lives only in data/.
System@mrbrandme registry
shadcn add @mrbrandme/hero-marquee — like this one.
RegistryThe system
Everything is a token, a block, or a card.
No hardcoded colours, no one-off headings, no client pages. The primitives do the work.
- Contrast systemAdd .contrast-on to any block and every token below it flips. No dark: overrides scattered through the tree.
- Stagger revealsOne <Stagger as='ul'> primitive animates children in on scroll — semantic HTML, zero wrapper divs.
- Blocks & cardsPages compose prop-driven blocks; blocks compose cards and primitives. Copy lives in data/, never in components.
Composition
Copy one side, media the other.
The Split block takes a media slot and a mediaSide prop. Same Header, same Stagger, zero new patterns.
Blocks can overlap.
This card straddles the seam between two bands — bgTop and bgBottom match the neighbouring blocks.
Get started
Clone it, retheme it, ship it.
Swap the tokens in globals.css and the copy in data/ — the system holds.