Extend
The kit is built to be extended by the same rules it follows itself. Each kind of change has one place to start, and the type checker and tests point at whatever else is missing.
| To add | Start in | Guide |
|---|---|---|
| A block | src/blocks | Add a block |
| A kind of content with its own pages | src/registry/index.ts | Add a module |
| A language | src/i18n/locales.ts | Add a language |
| Default colours | src/theme/tokens.ts | Theme colours |
Before you start, read CLAUDE.md at the root of the repository: it lists the conventions, and tests/unit/conventions.test.ts enforces the ones a machine can check. The short version:
- No brand, company or customer names in code, samples or seeds. The demo uses the fictional audio brand Varde; older test fixtures use a fictional pump maker, Brisk Pumps.
- No hand-kept lists of collection slugs outside
src/registry: derive them from the config or the registry. - Text editors write is localized, and admin labels are short and plain.
- Visitor-facing words come from
src/messages/*.json, with the same keys in every file. - Cache refreshes use
revalidateTag(tag, { expire: 0 }). - New dependencies only when unavoidable, and only under MIT, ISC, BSD, Apache-2.0 or (for fonts) OFL.