Atlas
A component library built for 2G connections. 14 kB of CSS, zero runtime JS, keyboard-complete out of the box.
Designer, developer and general maker of small strange things. I build interfaces that are fast, legible and usable by everyone — then I take them apart and build them again.
Ten years of shipping. The short version.
2023 — NOW
Lead designer on the core platform. Built and maintained the design system used by 40+ engineers, cutting new-feature build time by ~30%.
2020 — 2023
Shipped the public-facing app and rebuilt the marketing stack. Took Lighthouse accessibility from 61 to 100 across all templates.
2017 — 2020
Brand, web and product work for small studios and independent musicians. Roughly 40 projects, mostly happy people.
2016 — 2017
Print and editorial. Learned to kern, learned to argue about kerning, learned to stop arguing about kerning.
Things made for no reason at all. This is where the good ideas usually start.
Selected work. Filter by discipline.
A component library built for 2G connections. 14 kB of CSS, zero runtime JS, keyboard-complete out of the box.
Rebuilt a 200-page design system as 40 pages people actually read. Tokens, contrast rules and a public changelog.
365 sprites in 365 days, exported as a browsable archive with a colour-blind-safe palette switcher.
A browser extension that rewrites any page into a dyslexia-friendly reading mode. 12k weekly users.
Identity and sleeve design for an independent label. 22 releases, one very stubborn grid.
A tiny browser game about editing someone else's novel. Playable entirely with a keyboard.
Notes on design, accessibility and whatever I broke this week. Occasionally useful.
Alt text isn't a caption, a keyword dump or a place to be clever. It's a replacement. Here's a decision tree I've used on about 4,000 images, plus the three cases where the right answer is an empty string.
Roughly one email a month. No tracking, no reposted threads. Unsubscribe in one click.
Work, collaboration, or just to say hello. I reply to everything.