The Future of Design, Revisited

Two years ago I gave a talk called “The Future of Design.” I didn't have answers. I had a list of things that felt wrong about how design worked, and a guess at what each one should become.

I'm revisiting that list because the guesses aren't speculative anymore. Every direction on it has been answered in working tools I use every week.

Then

This is what I said design was, and what it should become:

  1. Siloed → Integrated
  2. Static → Dynamic
  3. Proprietary → Open-source
  4. Manual → Automated
  5. Rigid → Adaptive
  6. Lossy → Lossless
  7. Resource-intensive → Sustainable

I had no proof. I had conviction and a career spent watching design get treated as expensive, as a bottleneck, as the thing you cut when the budget gets tight.

Now

Siloed → One shared spec

Tokens, component contracts, annotated HTML. The intent travels without needing me in the room to explain it.

Static → Rebuilds with the project

The designer is still the gatekeeper of the aesthetic. But everyone can update what happened earlier and regenerate. Update the research, the design follows.

Proprietary → Open & collaborative

The tools and the formats should be open enough that design can be read, extended, and maintained by the whole team.

Manual → Evidence-backed

Design is an execution on decisions made earlier in the process. It should be obvious why something is designed this way. Not “the machine does it for me” but “you can trace every decision back to its reason.” A thousand lines of decision territory, all linked.

Rigid → Commit and regenerate

Be comfortable with partial representation. Come back, iterate, regenerate. Design doesn't have to be exhaustive upfront to be rigorous.

Lossy → Nothing lost in translation

The prototype is HTML and CSS. The tokens come from the live site. The Figma file is generated from the same data, not drawn from scratch. Three-year-old Figma libraries that nobody updates don't live there anymore.

Resource-intensive → Discover once, rebuild cheap

Make the initial discovery thorough, then make everything downstream regenerable. The cost of a wrong guess collapsed. You can afford to guess more often and learn faster.

The specification is the work

All seven of those arrows point at the same thing: design should live as a specification, not a picture.

If design lives as a spec, the visual representation follows from it. Storybook, HTML prototype, Figma, whatever you want. The format is a rendering of the data, not the data itself. You're not locked into one tool, and you're not rebuilding from scratch when you switch. The workman blames his tools. The specification doesn't care which tool renders it.

This changes what a “design deliverable” means. It's not a Figma file. It's the decisions: tokens, component contracts, content models, interaction patterns. All structured, all traceable, all regenerable. The Figma file is one output. The HTML prototype is another. They come from the same source. Change the source, both update.

The specification is the work. The visuals are what fall out of it.

Generalist to specialist

The first version of the tools I built tried to do everything. A generalist agent that pulled from everywhere and attempted to be helpful across the whole surface. Too broad, too shallow, too much noise.

What works is specialists. An audit agent that only does audits. A prototype agent that only builds prototypes. A Figma agent that only pushes to Figma. Each one does its thing well and passes structured output to the next. The orchestration holds the complexity so I don't have to.

Same lesson design teams learn. A generalist stretched across eight workstreams produces eight mediocre things. A specialist given one clear problem produces one thing you can ship.

The pipeline

Text
        People
          │
      discovery
      extraction
        taste
          │
          v
  Audit → Analyze → Prototype → Handoff
                                    │
                                visual spec
                                    │
                                    v
                          Compiler → Running Site

People in, decisions out. Discovery, extraction, taste. Then: audit the current state, analyze the findings, prototype from the analysis, hand off in a format the next system expects. The handoff becomes a visual spec, and the visual spec feeds a compiler that produces the running site.

On disk, the specification is a folder. Structured decisions, tokens, component contracts, content models. Each step writes to it, each step reads from the last. Something like this:

Text
project/
  0-context/        ← research, stakeholder notes, analytics
  1-audit/          ← screenshots, component inventory, findings
  2-analyze/        ← opportunity backlog, scored and prioritized
  3-prototype/      ← HTML pages, token pipeline, Storybook
  4-handoff/        ← visual spec (YAML, design.md, assets)

The prototype is HTML and CSS. The Figma file is generated from the same data. Storybook documents it. The handoff layer (a design.md and structured YAML) is what the next system, or the next person, reads. It's not a Figma link. It's a spec that any tool can consume.

Every step is traceable. Every decision has a number and a link. Bad decisions are learning opportunities, not things to delete. Run it again with new inputs, the whole tree regenerates.

How it feels

Two years ago, design was very tight. Fixed scope, prove your value, fight for your hours.

Now every direction on that list has a working answer. That makes me feel vindicated and powerful. Also creative. Ironically, all of this structure makes me feel more creative, not less. The mechanical parts moved to the background, and what's left is the judgment, the taste, the part of the work I got into this for.

Some designers miss the directness of working with their hands on the material: dragging, nudging, seeing the thing change under their fingers. That's not nostalgia. That intimacy is where taste lives, and losing it is how feel goes to die. The tension is real: how do you connect with your work at that level when the work is specifications and pipelines? You find new ways. The closeness moves from the pixel to the decision. And that's what design does: design our own tensions.

This is the kind of thing I write about.

More on design systems, tokens, and the code that ships them.