The design system and the build are both mine. No template, no page builder, no agency — the tokens, the components, the copy and the deploy.

02Stack

What it runs on.

Next.js 15, React 19, TypeScript

App Router, server components, server actions.

Framework

Supabase

Postgres for editable copy and page metadata, with row level security.

Data

Vercel

Deploys on push to main.

Hosting

Plain CSS

Custom properties and semantic pattern classes. No utility framework.

Styling

03Typefaces

Three faces, all self-hosted.

FaceRoleLicence
ManropeThe default voice — body, navigation, UI, most headingsOFL
PetronaThe scarce editorial register — one italic phrase, pull quotesOFL
PecitaPen annotations, two to eight wordsOFL

All three ship under the SIL Open Font Licence, with each licence file served beside the font it covers. Converted to WOFF2 locally; nothing loads from a CDN.

The line icons on the filter chips and collection headings are by icons8, used under their free licence, which asks for exactly this credit. They are rendered as masks over a colour fill rather than as images, so one drawing takes whichever tint the surface around it needs.

04Material

The canvas.

Every surface carries a woven painter's canvas over an exact Margin Blue base. The image supplies texture and luminance only — the base colour sits underneath as a deterministic fill, so the blue never shifts. It runs at twelve percent behind the hero, eight on reading pages, and sixteen on ink fields, where it lifts rather than muddies.

Colophon — Kate Kruger