Squarespace was great—until I hit a paywall just to edit my own CSS and get total layout control. To fix that and truly flex my design engineer biceps, I redesigned and rebuilt hannahgrossman.com from scratch. Leveraging a hybrid stack of classic tools and new AI workflows—Figma, Claude Design, Claude Code CLI, GitHub, and Vercel—I traded rigid templates for custom code and total creative freedom.
Updated as the build moves
I pulled the palette from a photo I took in my office/workout hybrid room: dusty mauve, burnt sienna, cream, honey wood. I often find inspiration in physical spaces, and since I’d designed my office/workout room to feel like “me,” I wanted to translate that “me-ness” to the digital representation of myself. Before laying out a single screen, I wrote the palette as tokens, then expanded the details to match. Fraunces for display, DM Sans for body, DM Mono for labels, and a deliberately tight 3px radius so the warmth never tips into soft.
The Design.md file is the contract. Every page, and every tool downstream of it, reads from the same list—which is why the design and the deployed HTML never drifted apart.
The layouts were the easy part. It’d been years since I’d deployed a site to prod, and I was using new tools and a new provider. Good thing I know my way around the command line. Getting a static site to behave (build settings, clean URLs, a stale cache serving yesterday’s hero) is where I learned the most, mostly by arguing with a terminal.
Paraphrased from the Claude Code CLI
The landing page, this experiments index, and the detail pages are live. Contact and the newsletter are still stubbed while I decide how much backend I actually want to own. The writing archive is next.
What I'd tell another design leader: the tokens file is the whole trick. Once the palette, type and spacing live in one plain text file, handing work to a model is the same as handing it to an engineer—the constraint travels with the request.