The reading list from the old Resources page (books, articles, podcasts and teaching handouts) now lives in the Input grid.
Personal builds join client work on the /work grid, with a Client / Personal filter.
A filter bar for the Input board: narrow it by type or theme, or search.
Two batches for the Input board: 53 new images and 39 uncredited ones.
Ways to show more of an image without leaving the page.
I'm starting a leadership and professional coaching practice.
Every quote that rotates at the bottom of this site, on one page with filters and search.
102 quotes mixed in with the images on the Input board.
A Chrome extension that puts a paper planner's stickers, doodles and scribbles on top of Google Calendar.
The job tracker is live: add listings, move them Kanban style, and let a Claude skill draft the cover letter.
One of my favorite essays, now on its own page: a poetic look at where the word design comes from.
Grown from a dashboard into a workspace, with a terminal, logs and files for every project. Now closed source.
A generator that tiles a canvas with random polyomino clusters and exports the result as SVG.
Three typographic works by Ben Johnston: Dreamers Court, Inflatable Arch and Inflatable Tower.
The weekly discussion series for Curious, my NYC community, now has its own idea page.
A map and directory of freedivers and the 560 schools they train at.
A contact manager for address books that got out of hand: import, find the duplicates, keep it in a database you own.
A Chrome extension with download tools for the page you're on: Pinterest boards, Behance projects and webfonts.
Case study: redesigning the flight information displays for Pittsburgh International Airport's new terminal.
Case study: a new identity, landing page and SaaS app for terraFlow, a flow cytometry startup.
Collects every #hashtag in a Google Doc into one colour-coded list in the sidebar.