# Coding is designing · Craft

<!-- https://learn-ui.com/chapters/craft/coding-is-designing -->

In June 2026 Jim Nielsen published [Coding Is Designing](https://blog.jim-nielsen.com/2026/code-is-design/). Its first line: “Code isn’t just a way to implement a design, it’s a way to find one.”

### Code is how you find a design

An interface, Jim writes, is something you have to use and poke at before you can see the relationships between its parts. Change one thing and another reacts; change the first again and the second reacts differently, until the elements settle into a whole. His closing line frames the chapter: “Design is ‘how it works’ and code is the tool to specify how it works.”

In [The Figma to Browser Chasm](https://blog.jim-nielsen.com/2023/figma-to-browser-chasm/) (2023) he notes that “sometimes a Figma mock is too easily conflated with the end product,” and quotes Derek Briggs: “Users don’t see your Figma files, so they’re only as good as their implementations.” The **chasm** (Jim Nielsen's name for the gap between a Figma mock and its implementation in the browser; the mock is only as good as the code it becomes.) is a Pinterest fail meme: a beautiful abstraction meets the attempt to make the thing. You only capture a talented designer’s value with an equally talented engineer, or one person who does both.

Source

Jim Nielsen, Coding Is Designing (June 2026) and The Figma to Browser Chasm (March 2023). The Derek Briggs line is quoted in the second post.

### The website is the source of truth

[Making Films and Making Websites](https://blog.jim-nielsen.com/2024/making-films-and-making-websites/) (2024) starts from Baldur Bjarnason’s claim that software is closer to media production than housebuilding. A screenplay is not a film; “what you use to make a website is not the website itself.” When each discipline pours care into its own deliverable, blame gets impersonal (“my mocks were pixel perfect!”) and nobody owns the experience. “People come to use websites, not look at mocks.”

[Designing Between the Lines](https://blog.jim-nielsen.com/2021/designing-between-the-lines/) (2021) opens with a line attributed to Matisse, “I don’t paint things. I paint the difference between things,” and ends: “don’t merely design things. Design the relationships between things.” Ken Kocienda, quoted in between, explains why A/B tests find a button colour that gets clicks but not an integrated whole. [The Unseen Work of Design](https://blog.jim-nielsen.com/2021/unseen-work-of-design/) (2021) adds that “the final product isn’t produced but discovered.”

### Holding logic and creativity together

In [The Tension Between Logical Reasoning & Illogical Creativity](https://blog.jim-nielsen.com/2023/logic-of-code-and-illogic-of-creativity/) (2023) Jim argues that programming demands logic at every step, and when that leaks into ideation it limits your capacity to imagine new connections. He borrows John Cleese’s definition of a new idea, “connecting two hitherto separate ideas in a way that generates new meaning,” and values design engineers for holding both demands in balance.

[Interdisciplinary Website Maker](https://blog.jim-nielsen.com/2024/interdisciplinary-website-maker/) (2024) describes interviewers who stammer when he says he wants to do design and code, and quotes Paul Ford: “The interdisciplinarian is essentially an exile.” Websites are like trees: every discipline is needed to grow them.

[Craft and Satisfaction](https://blog.jim-nielsen.com/2025/craft-and-satisfaction/) (2025) quotes Sean Voisen (“Maybe nobody will notice those details, but it doesn’t matter. We care, we notice, we get joy from the aesthetics of the craft.”) and finds satisfaction in intimate understanding of your material. AI can run that in reverse, so he asks: “do I care more or less about what I’ve made when I’m done using AI to help make it?”

### A worked example in code

Rauno Freiberg’s [Crafting the Next.js Website](https://rauno.me/craft/nextjs) (April 2023) records design decisions made in code. Built in February 2023 with Glenn on design and Alasdair, with “no swanky mesh gradients, obnoxious artifical shines, or overuse of gimmicks,” the static version shipped as soon as it beat production and animations followed.

The hero’s blinking switchboard began as a vector illustration that rendered inconsistently across browsers, so he built it in code: the medium pushed back and the design was found in the material. The page ends by noting that no artificial intelligence was used. Treat the running interface as the design artifact.
