The full story
Where it came from
In April 2026, getting ready for a talk, I studied the slides I wanted mine to feel like: Shawn Kanungo’s keynotes. I paused 41 stills from his talks and wrote a style study. Four rules came out of it, and they’re still the first four rules of the system: one idea per unit, text is the design, scale creates impact, bleeds are intentional. Some of the look came off his stage screens too: the stripe comes from the diagonal cobalt, magenta and red blocks behind one of his talks, and the yellow from his habit of setting a second line in yellow under a white one. The idea under all of it, which I noted as his Instagram rule: every slide should be something a person would want to photograph and share.
Shawn is the inspiration and nothing more: none of his slides, stills or photos are on this page, and he hasn’t endorsed it.
From a look to a system
I took the written study into Claude Design, which turned it into a design system for the June talk, exported as code for the deck. I named it Bold Talks.
Ask a coding agent for a page and you get its default look: a centred hero, three rounded cards, a gradient somewhere. On 31 August 2026 Vercel published how they fixed that for their own agents, in “How our agents build on-brand pages with design.md”: a file written for an agent to read, a public stylesheet for the mechanics, and automatic checks plus a human review. (Their test found 57% fewer mechanical failures, 39 against 91 across six pages. Those are their figures.) That same week I turned Bold Talks into the same shape and called it Ground.
Ground is three files with three jobs. design.md, 289 lines, is the judgment: who’s reading, what counts as evidence, what to refuse. It’s written as a Claude skill, so Claude Code can load it before it builds anything under my name. ground.css holds the mechanics and speaks only in roles, never a hex value. The themes hold the values: night (the original Bold Talks palette), paper and document. The build pages add a teal light side in their own stylesheet, and each build overrides four tokens for its accent.
The 26 minutes
Commit 9812cf9 at 9:15 holds both build pages complete with the shared stylesheet; the home page link, photos, video, social cards and the move off cream and amber followed in four more commits by 9:41.
The contrast fix
Labels, captions and chips on the first portfolio were set in the tertiary grey at 4.87:1. That clears the AA minimum, which is defined for body text, and is hard to read at 10 to 11px uppercase with wide letter spacing. The muted grey went to 7.21:1, anything under 13px now uses the secondary ink at 12:1, nothing small is set in an accent colour, and small mono is at least 11.5px. It went into design.md and the shared primitives, so every page built on it inherits the fix.
My calls against the file’s defaults
Ground’s own rule caps prose at 62 characters. I overruled it for every page of mine: text fills its column. The first light theme was cream and amber, which looked like what the AI makes for everyone out of the box, so the build pages moved to teal. And keeping the night palette was a decision made, reversed and made again before it stuck, because it was always my own system.
Tools
- Claude Design
- Claude Code
- design.md written as a Claude skill
- CSS custom properties
- Headless Chrome for social cards






