most starter kits
look like starter kits.
this one doesn't.
Next.js 16, Tailwind v4, and working Supabase auth (sign-up, magic link, protected routes, sign-out), wrapped in a design spine built to fail one test: could a generator produce this in one shot? If yes, it's not done. Pick the demo apart on the right. Every value on it comes from a real component sitting in src/components.
$15one time. unlimited personal and client projects.
17 files · 5 components · 830 lines · 0 extra deps
a tool bench
the accent is the only warm thing on the page
spineunchanged
one display face + mono, borders not shadows, motion that teaches. every material below shares this.
accent#e8a33d
radius2px
typemono, oversized
the tells this kit refuses to ship
never (hover it)
◆
featurelorem ipsum description
instead
featurewhat it actually does →
said in one true sentence, the way you'd describe it out loud.
what's inside
the spinesrc/app/globals.css
near-monochrome tokens, one accent, borders not shadows, a fixed film-grain overlay, motion that only plays where it teaches.
four materials, one componentsrc/lib/materials.ts
workshop, ledger, blueprint, darkroom. swap the row and every screen repaints. add a fifth for your own project in under a minute.
real auth, already runningsrc/lib/supabase + proxy.ts
magic-link sign-in, a protected /dashboard, a callback route, sign-out. Try it yourself: the sign-in link above runs this same code.
the primitivessrc/components
Rail replaces the card. LeaderRow replaces the label-value pair with dots doing the work padding used to. Button has no drop shadow.
built for an agent to extendnamed for what things do
Rail, LeaderRow, MaterialSwitcher: every primitive is named for its job, not for what a template calls it. Point Claude Code, Codex, or any other coding agent at this repo and it follows the existing pattern instead of inventing a new one next to it.
questions
17 files. 5 components. one design spine.
get grain/kit · $15