We've always known the destination
A thirty-year detour to somewhere we knew we were meant to go
There has always been one obvious destination for digital product delivery. A single interface where design intent and working reality are the same thing.
Not translated.
Not approximated.
Not handed off from one side and reconstructed on the other.
The same thing.
Our industry has been trying to build that for thirty years. We’ve gone from building bad versions of the right thing to building good versions of the wrong thing.
The jokes wrote themselves. Dreamweaver sites. FrontPage sites. If you were of a certain rebellious bent, HotDog sites.
These used to be mocked because they were the telltale sign of someone who didn’t really know what they were doing. Table-based layouts, inline styles, spaghetti markup so bloated that any developer would want to quietly rebuild the whole thing from scratch instead of fix it.
They were also empowering tools for a lot of people. They let you make stuff that was real. They weren’t being mocked because they were trying to unify the visual and the functional in a single interface. That instinct was right. They were mocked because of how much they corrupted the code side of the equation.
The canvas was easy to navigate.
The code output was garbage.
So industry corrected. Realistically, given the technical limitations. Built an organizational culture around the separation of disciplines.
Serious designers used serious design tools.
Serious developers wrote serious code.
And between them a handoff ritual grew - redlines, specs, prototypes, tickets.
We created a workaround dressed up as a workflow.
The separation is artificial. We’ve always known this to some extent. Design systems were an obvious admission. Design intent encoded as structured, reusable truth rather than redrawn from scratch on every new screen. Tokens, components, semantic definitions; shared language that both sides could read. I’ve often joked that the irony of the name “design system” is that its primary consumers are usually developers.
AI closes the remaining distance. When structured design context can be interpreted directly into working interfaces, the translation layer becomes unnecessary. The middle dissolves, and the destination comes into view.
It’s why I find these code-to-canvas offerings so strange. Code-to-canvas takes a working interface - real interactions, data, behavior - and converts it back into static frames.
It argues that collaboration is only possible on drawings of the real thing, not the real thing itself.
Dreamweaver and FrontPage, for all their failures, at least understood where they needed to go. The visual and the functional needed to live together. They just didn’t have the technology to make their ambition real. The code they generated was the limitation, not the vision.
You can forgive a tool for being ahead of its time. But the technology exists now to make the canvas genuinely real - connected, live, executable. And it’s harder to forgive a deliberate turn away than a premature attempt at the right destination.
Our destination hasn’t changed. A canvas as a live interface into the system. The real thing made navigable, editable, collaborative. We’ve known that’s where we were going for a long time.
Surely this time.
Further reading
The digital workflow is obsolete, on the collapse of the handoff model.
Code to canvas is bonkers, on Figma’s specific wrong turn.
FrontPage vs DreamWeaver. Webmaster World.com discussion thread, July 2003.
Smith, E. Your Code is Junky. Tedium, March 2017.
Article photo by Daniel McCullough on Unsplash.
