
Grab Pro Now
Customize your admin
A personal Next.js template that grew a constitution: seven layers, one verb each, every layer built out of the one below.
Every layer is built out of the one below it, and inherits its laws rather than re-deciding them. The last two hang off the ladder — outputs and experiments, ingredients of nothing.
Colour and elevation tokens, the icon rules, the five feedback tones, the data pipeline, the auth seam. Each is written down once and given a page that demonstrates it — and nothing above this layer is allowed to re-decide any of them.
The unit is the family, not the package: one family, one page, tabs that walk its members. Two engines coexist underneath — CSS shells from shadcn, behaviour from Base UI — behind a single seam, so a page author only ever learns one vocabulary.
Cards replicated from designs in the wild, translated into these tokens, and upgraded wherever the original settled for ordinary. Each one registers exactly once; the gallery and its domain routes derive themselves from that entry.
Every page belongs to a class, and a class gets its law before it gets a page: a kit whose defaults enforce the layout, a spec document, and a living example. Building a page means filling slots — the chrome is not yours to write.
Whole products rather than component demos — a CRM, a task tracker, a grid control room, a wealth dashboard. They are the proof that the layers below actually compose, which is why each one lists the cards it is made of.
Where a thing is tried before it is legislated: motion studios, a map lab, generators, a physics toy. An experiment that matures graduates out of here into a law; one that never does stays here, honestly labelled as a toy.
Keys that survive a dialog — shipped Aug 29, 2026
A shortcut that works on the page and dies inside a dialog is the default outcome, not an edge case — overlays trap keys in the capture phase, where the usual window listener never runs. The law now has a hook, a spec, and a page where you can flip the failure on and off.
Binding happens on the document's capture phase, so a dialog's focus trap can no longer swallow the keys a panel advertises. Space and enter still belong to a focused button, and letters stay text inside a form field.
/foundations/keyboard makes the failure switchable: bind on bubble, open the dialog, press an arrow and watch nothing happen — then flip back to capture and the same keys walk the board.
Framework and runtime moved up a patch each.
One choice per job, and no second library for a job already taken.
Plus shadcn/ui and Base UI behind one seam, TanStack Query, zod, react-hook-form, motion, Recharts and MapLibre.