Koa is the theme for people whose work is the argument. Six case studies, an index you can filter by discipline, and a studio page that reads like a person wrote it.
It ships to the App Store, not only to a browser
Capacitor is wired in, so the same code base becomes a native iOS app. The floating bar respects the iPhone safe area, taps carry haptic feedback, and nothing in the layout assumes a mouse.
It is written to be extended by an AI agent
An AGENTS.md at the root, and five files of written conventions beside it: design, content, internationalisation, components and deployment. They say where a token lives, why a rule exists and what breaks if it is ignored. Point an agent at the repository and it extends the theme instead of fighting it.
What you get
23 built pages across English and French, from one page source each. Six projects, each with its own case study. A studio page, a contact page whose form ships without an endpoint on purpose, and a legal page with bracketed fields to fill in.
Drawn, not photographed
Every project carries an original SVG plate generated from two fields of the project file. Two kilobytes, sharp at any density, retinted by the palette, and no licence to check. The day you have real images, fill in the cover field and the plate steps aside: same tag, same framing, same grid.
Built to be read
Astro 7 static output, Tailwind CSS 4 with CSS-first tokens, TypeScript in strict mode. No React, no animation library, no WebGL. One command repaints the whole theme from a single brand colour. The SEO layer is hand-written files in the repo rather than a plugin, and the same source builds an iOS and Android app through Capacitor.
Bilingual by construction
English at the root, French under /fr/, one output per language from one page source. The dictionary is a typed object, so a missing translation is a build error instead of an English sentence in production.










