5 min·craft

Designing the dead fish, or why I design in code

The handoff loop

A designer hands off a Figma file. An engineer translates the intent into code and ships something that's close but not right. The spacing is off. The transition feels wrong. The hover state triggers at the wrong moment. A ticket is opened, a fix is made, and three days later we go again. The cost isn't the pixels — it's the delay between intent and the real thing.

A picture of a product

Consider what happens in most design reviews: the team opens a Figma file and critiques it as if they're looking at the product. They're not. They're looking at a picture of the product. Bill Buxton draws a line between sketches, prototypes, and final artifacts — each serves a different purpose. A Figma file is too polished to be a sketch and too static to be a prototype. It sits in a middle space that looks finished but behaves like a poster.

The material matters

Creators need an immediate connection to what they're creating. A painter sees the brushstroke as it happens. A designer working in Figma sees a representation of an interface, never the interface itself. The product is built of code — designing in a different material means designing a translation of the thing, not the thing itself. When I build a component in code, I feel the tab order, the focus ring, the lag between state changes. In Figma, I see a picture of it. That difference changes the design.

Why I switched

So I stopped handing off Figma files and started designing in code. Not because I write React from scratch — I use Cursor and Claude as pair-programmers. They handle the syntax; I handle the judgment. I open branches, push commits, open pull requests. The PR is where the design becomes real, and if I'm not in that moment, someone else is interpreting my intent.

Ideate in Figma, decide in code

Figma is where I ideate — fast, loose, disposable. Code is where I decide. The shift isn't about learning syntax. It's about having authority over the final artifact. A design process that ends at the handoff is a process that surrenders control at the most critical moment — when the abstract becomes concrete.

Design in the material the user will touch. Everything else is a sketch of a sketch.