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.

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.