There's a gap in every product organization that nobody puts on a roadmap. It lives between what gets designed and what gets shipped. It's been there for twenty-five years. And it's about to close.

I've been watching the design-code convergence accelerate for the past year. Tools like Claude Code and Cursor changed how fast designers can prototype. Figma remains where the real craft happens — the flow state, the precision, the novel solutions that emerge when you're working visually. But the handoff? That's still where fidelity goes to die.

This isn't about designers learning to code or developers learning to design. That framing has been around for fifteen years and it's never been the point.

It's about the space between those two disciplines getting small enough that the work stays coherent from canvas to production.

Design intent shouldn't need a translator.
The best design systems make the gap disappear.

The Gap Was Never About Skill

The problem was structural, not human. Design files live in one ecosystem. Code lives in another. And the translation between them is where intent gets quietly reinterpreted.

Every design leader I know has felt this. You ship a Figma file that's pixel-perfect, and what comes back from development is close but not quite. A border radius rounds differently. A spacing token gets approximated. A component that looked unified in the spec drifts slightly in production.

None of that is anyone's fault. It's the cost of maintaining two separate sources of truth and asking humans to keep them synchronized. Multiply that across a product with hundreds of screens and you've got craft debt that compounds silently.

I've built design systems at enterprise scale — tokenized, shared across brands, adopted by engineering teams. The hardest part was never building the components. It was maintaining fidelity through the handoff. Every time a design decision had to be re-interpreted by a developer reading a Figma spec, there was a chance for drift.

The handoff isn't where design ends — it's where design fidelity starts to bleed.

The cost of two sources of truth

What Pencil.dev Actually Changes

✦ Convergence Point — Pencil.dev

One source of truth

Design on canvas.
Land in code.

Pencil puts a design canvas inside the IDE. The design files are stored as JSON in Git — version controlled, branched, merged alongside the code they describe. That's not a workflow improvement. That's removing an entire translation layer from the product lifecycle.

When your design files and your code files live in the same repo, the handoff isn't a handoff anymore. It's just the work. One source of truth. No export step. No "does this match the spec?" conversations. And if you've been working in Figma, you can copy frames directly into Pencil — layers, auto-layout, styles come through.

This is a fundamentally different proposition than "design to code" tools that generate code from mockups. Those tools still assume two worlds that need a bridge. Pencil asks: what if there was only one world?

That matters. Not because every designer needs to live in an IDE — but because the design decisions shouldn't have to survive a translation to remain intact.

Design Systems Become the Contract

Here's the part I keep thinking about. The part most people aren't talking about yet.

If design files and code files share a repo, design systems stop being reference libraries that teams consult and developers approximate. They become the literal contract between what gets designed and what gets shipped.

The Shift

Your tokens, your components, your layout logic — they're not documentation anymore. They're infrastructure.

That's a fundamentally different thing than a Figma component library with a Confluence page explaining how to use it.

When the system is shared across design and code files in the same repo, a designer changing a token changes it everywhere. A developer using a component is using the same component the designer built. There's no gap to drift into.

I've spent years bridging this gap manually — building tokenized systems, writing naming conventions, sitting in handoff meetings to make sure the engineering team understood the intent behind a layout decision. All of that overhead exists because we've been maintaining two separate representations of the same product.

What happens when there's only one?

Why This Matters for AI Workflows

This connects to something I've been working through in my own practice. When you're using AI to generate volume — screens, prototypes, variations — the design system is what keeps that output coherent.

AI is a maximalist. It throws components and styles everywhere without regard for consistency. It creates new button styles when existing ones would work. It invents spacing values that don't exist in your token set. It builds things that, to the untrained eye, look like a product. But they're not designed.

  1. Without a strong system AI acceleration means you ship inconsistency faster. Every generated screen introduces new patterns that don't match existing ones. The speed is real but the coherence isn't.

  2. With a shared system The AI has guardrails that actually hold. The system isn't a suggestion the AI might follow — it's the material the AI builds with. Components are constraints. Tokens are boundaries. The design system becomes the grammar of the product.

  3. With a converged system Where design and code share the same source of truth, those guardrails are structural, not advisory. A component in the system is the same component in the code. The AI can't drift from the system because the system is the codebase.

The Multiplier Effect

Design systems have always been infrastructure. In an AI-augmented workflow, they become the difference between speed that compounds quality and speed that compounds debt.

The system is what lets a small team move fast without losing coherence.

The Question for Design Leaders

I don't know if Pencil.dev specifically is the tool that wins this space. It's early. There are rough edges. But the direction is right. And the convergence isn't going to wait for anyone to get comfortable with it.

The question for design leaders isn't "should my team learn this tool." It's more fundamental than that.

Is your design system structured to survive the convergence that's coming?

Is it tokenized deeply enough that the tokens could be shared across design and code? Are your components documented at the level of behavior and constraint, not just visual spec? Is your naming architecture something a developer — or an AI — could parse without a walkthrough?

If the answer is no, every AI tool in the world won't close the gap. You'll just be generating inconsistency at scale.

If the answer is yes, the convergence isn't a threat. It's the moment your system was built for.

The design-code gap was never about skill.
It was about where the files live.
Design systems are the API now.

JD

JD McCulley

Product Design Leader

25+ years building UX organizations at enterprise scale. Most recently embedded design director at Dollar General, growing the digital platform from 5M to 12M+ monthly active users. Operating at the intersection of craft, technology, and leadership.