# The Only Designer, and I Shipped the Code Too

By David Skelton - 2026-08-20 - https://skeltonmedia.com/blog/only-designer-who-also-shipped-the-code.html

I was the only designer on a four-person team, and I didn't hand the design off. I collaborated
on the codebase itself, in Claude Code and GitHub, with the contextual styling and color informed
by a fully responsive brand system I developed in Figma.

That's the part that usually gets described as "engineering handoff," and it isn't what happened.

## Being small meant more control, not less

Being a small team meant fast iteration and more control over each feature. We didn't have to stop
marketing, or any of the day to day, in order to also ship code, around the clock, merging PRs and
running UX reviews.

We did all of it. Including testing with people in our own lives who fit the target audience.

![The Arloa brand system](assets/case-studies/brand-and-website/brand-02-402x.webp "The responsive brand system built in Figma. It was the source of the styling and color that went into the codebase")

The brand system in Figma wasn't a deliverable that got thrown over a wall and then reinterpreted
by someone else. It was the source the code read from. Same system, same tokens, same decisions,
which is why the styling stayed contextual instead of drifting every time a feature shipped.

![The Arloa app dashboard](assets/case-studies/brand-and-website/arloa-dashboard-402x.webp "The product, built off the same system")

## The same system ran the content too

I also automated blog posts, website, and email content using that same design system. Claude Code
writing the content and the HTML that handled delivery.

That last part matters more than it sounds. It wasn't just generated copy. It was the copy *and*
the markup that actually shipped it, built off the same brand system the product used, so the email
and the app didn't look like two different companies.

![The newsletter system](assets/case-studies/brand-and-website/newsletter-402x.webp "Email content and the HTML that delivered it, generated off the same design system")

Then PostHog to track user behavior, and SendGrid analytics going directly to Claude agents, so
what people actually did came back into the loop instead of sitting in a dashboard nobody opened.

## The human loop isn't a safety net, it's the method

The brand voice layer was a human loop. I'd review the content before it went out, steering the
agent's rules file to make sure it was always accurate.

That's not something I bolted on for this project. The human loop is part of my design methods
throughout everything I do, always exploring the strengths of different models and providers, and
keeping a person in the path where the output actually matters.

The generation was never the hard problem. Keeping it accurate and in voice was, and what solved
that wasn't a better prompt. It was a person reading the output before it shipped, and turning what
they caught into a rule the agent had to follow next time.