structure
Semantic HTML, read before it is seen
Information hierarchy and content that remains understandable without visual effects. Structure, design and behaviour, in that order of importance.
Disciplines 01 · Websites
The web is where design and code meet most directly for me. I use complete concept projects to explore structure, typography, responsive behaviour, accessibility and interaction as one system.
01 · What this is
A finished, complete site of my own design, written by hand. No template bought from a marketplace, no page builder — every one of the ten is a project I set for myself, worked through end to end.
Most of the ten builds on this site started from the same question: what would this look like done properly? A restaurant, a clinic, a SaaS product — each one a chance to work through a real problem end to end, self-set rather than assigned.
structure
Information hierarchy and content that remains understandable without visual effects. Structure, design and behaviour, in that order of importance.
layout
CSS Grid, Flexbox, fluid type. The columns collapse in an order I decided, and the narrowest version is designed rather than survived.
performance
Keeping unnecessary dependencies out, loading media carefully, and understanding what the browser is actually doing.
accessibility
Focus behaviour, contrast, semantic markup, ARIA where necessary — interfaces that do not depend on animation. Walked by hand, key by key.
interaction
Accordions, galleries and forms designed to remain operable with a keyboard and with reduced-motion preferences honoured.
experimentation
Most of the ten are hand-written HTML, CSS and JavaScript. Elsewhere on this site I also work in React, Next.js and Vue — the tool follows the question, not the other way round.
02 · What a build consists of
Not a metaphor and not a simplification. Every one of the ten builds in the portfolio is these three files plus its self-hosted fonts — open any of them and read the source, which is the only reason this paragraph is worth anything.
That is the point of the number three: the next person to touch it does not need to have met me, and does not need to know a framework I happened to choose.
03 · What I test for
Both columns are the same size on purpose. Knowing where a build's edges are is as much a design decision as anything inside them.
04 · The questions
Not by default, and I'd rather say that plainly than dodge it. A hand-built site ships as files, so changing a sentence means editing a file.
There's a real answer worth exploring: an editing layer over the same static build, so named parts of a site become editable in a browser without touching code. It's its own small system — an editor, a login, a deploy step — three more moving parts worth understanding on their own terms.
Because the constraint is the point. Plain HTML, CSS and JavaScript force every decision to be visible — there's no abstraction hiding what a page actually does.
It also means anyone, including a future version of me, can open the files and read exactly what they say. No dependency to update, no build step to break, nothing standing between the source and the browser reading it.
By checking, which takes about ninety seconds and needs no special tooling. Put the mouse down, press Tab, and watch where the outline goes.
The standard here is built to WCAG 2.1 AA practice — a description of how the work is done, not a badge, because a badge isn't an audit. What I can offer instead is a measurement of this site, with its date and method attached, so it's checkable rather than taken on faith.
Measured on this site, 10 August 2026
axe‑core: 0 violations across 23 routes × 2 viewports
keyboard: 0 of 1,526 tab stops with no visible focus indicator
Every stop walked with real key presses, the active element read back after each.
05 · The work
All ten are self-initiated, all ten are live, and every one has a write-up saying what it set out to do and what fought back. These three are here because they look nothing like each other. If one happens to be your industry, that is a coincidence rather than the reason it is on this page.
Observability SaaS · 2026. Precision dark, not one photograph in the build, and a command palette that is a real one — focus held, arrow keys, escape.
Restaurant · 2021. An editorial print magazine that happens to serve dinner. Grid-led, warm, and about as far from the SaaS page as the same pair of hands gets.
Architectural brokerage · 2025. Four colour values, three type weights and a great deal of deliberate empty space. Restraint is the hardest of the three to imitate.
See the ten builds — each one runs in the browser you already have open.
websites
Every principle on this page is easier to see than to read about. The projects show the same discipline applied ten different ways.