Last Tuesday at 3pm, I updated our design token system and pushed the changes to production. No Slack messages to engineering. No “hey can you take a look at this?” No two-week sprint backlog wait. Just me, Claude Code, and about 4 hours of focused work. ![]()
![]()
I’m still not sure if I should feel proud or terrified.
What Actually Happened
I just got back from the AI Design Systems Conference 2026 (shoutout to Into Design Systems—amazing event). The big theme? Vibe coding: designers using AI tools like Cursor IDE, Claude Code, and Figma MCP to ship code directly to production. Not prototypes. Not “design specs.” Actual. Production. Code.
Here’s what I did:
- Updated our color tokens in Figma (routine design system maintenance)
- Fired up Claude Code and asked it to generate the corresponding CSS variables + React component updates
- Ran the changes through Storybook to verify visual consistency
- Pushed a PR, watched the CI pass, merged to main
- Boom. Design system updated. Tokens propagated to 8 product teams.
Total time: 4 hours.
In the old workflow, this would’ve taken two weeks minimum—waiting for an engineer to be available, explaining the context, reviewing their implementation, going back and forth on edge cases. And honestly? The engineer would’ve been bored out of their mind doing what’s essentially token translation work.
The Part That Keeps Me Up At Night
Here’s the thing: it felt empowering. I wasn’t blocked. I didn’t have to justify the work or explain design theory to someone who just wanted a Jira ticket. I owned the full loop: design → implementation → deployment.
But also? Terrifying. ![]()
Because there was no code review from engineering. No “hey, did you think about the bundle size impact?” No “this CSS specificity might conflict with the legacy theme system.” Just me, my design knowledge, and an AI tool that writes really confident code.
What if I broke something critical? What if there’s a performance regression I don’t know how to detect? What if accessibility got worse and I don’t have the testing tools to catch it?
The Questions I’m Wrestling With
1. Is this role collapse or role evolution?
Some folks say we’re eliminating the design-to-engineering handoff. But are we also eliminating the guardrails that engineers provide? The systems thinking? The performance and accessibility expertise?
2. Who should review designer-generated code?
If engineers are busy with “real” architecture work, who’s checking my tokens don’t blow up the bundle size? Do we need a new role—like “design engineer”—to bridge this gap? (I hear companies like Vercel are paying $200K+ for this.)
3. What happens to frontend engineers in this world?
If designers can ship UI code, what’s left for frontend engineers? Are they shifting to performance optimization and architecture? Or are we just… replacing them? That doesn’t sit right with me.
4. Are we optimizing for speed at the expense of system thinking?
Research shows developers using AI estimate they’re 20% faster but actually take 19% longer when you factor in debugging time. Are we shipping faster while understanding less? Is “move fast” actually just “move recklessly”?
What I Think We Need
I don’t think the answer is “designers shouldn’t touch code”—that ship has sailed. Tools like Claude Code and Cursor are too good, and the velocity gains are too real (some teams report 3x faster feature delivery).
But I also don’t think the answer is “designers can ship whatever they want.” That’s chaos.
I think we need:
- Automated guardrails: CI checks for performance, bundle size, accessibility
- New review models: Maybe not manual code review, but design review + automated testing?
- Clearer ownership boundaries: Designers own tokens and styles, engineers own logic and performance
- Design engineers as bridges: People who speak both languages and can review designer PRs
I Want Your Take
Am I overthinking this? Is this just the natural evolution of roles in an AI-enabled world? Or are we about to learn some hard lessons about the difference between “shipping code” and “building systems”?
If you’re a frontend engineer, how do you feel about designers merging PRs? Threatened? Relieved? Something else?
If you’re a product person, do you care WHO writes the code as long as we’re shipping faster?
If you’re in engineering leadership, what guardrails would you put in place?
I’m genuinely curious where this goes. Because right now, I’m sitting here with merge permissions and an AI that writes really convincing CSS. And I’m not 100% sure what the right thing to do is. ![]()
P.S. The changes did NOT break production. Yet. ![]()