Where do opinions live when interfaces become fluid?
How do you design when interfaces can become whatever you ask for?
I've been wrestling with this while building Nuanced Canvas. I started working on it because existing agentic tools didn't feel like the right home for my brain. But building it has had me thinking about what it means to design opinionated software when the interface itself becomes increasingly fluid, shifting and evolving on demand, as needed, rather than remaining a permanent fixture in the experience.
It turns out that it's hard to discern which parts of an interface should adapt to how I think verses the parts that should remain durable, permanent, and help shape my thinking.
Navigation on demand
A lot of traditional interface design involved anticipating how people will need to navigate information and then giving those paths a permanent place in the product.
Consider a code editor. We navigate software through files and directories, symbols, call hierarchies, and dependency graphs. Each offers a different way of understanding the same underlying system. The editor makes some of these representations readily available, and we learn to move between them.
But agents completely change this relationship. Increasingly, we can describe what we're trying to understand and have the appropriate representation constructed for us in real-time. Less of the interface is permanent. We already see this in agentic tools like Chat or Codex that surface controls and options in the UI only when they're relevant.
In building a coding interface, what you want to see can vary depending on the task. For example, if I'm trying to understand how a request moves through a system, I might want a call graph. If I'm reasoning about a feature's behavior, I might want a state machine. If I'm evaluating an architectural change, I might want to see the dependencies it affects.
I don't necessarily need a "call graph" view or a "state machine" button. None of these views to occupy permanent space in my editor, I just need to be able to summon them when they're useful.
This opens up greater design possibilities than were afforded to us before. Interfaces can become much more minimal without sacrificing the richness of the information they expose. Instead of anticipating every way someone might want to examine a system, we can increasingly construct the right representation in response to what they're trying to do.
The problem with a flexible interface
But there's a tension here that I've been encountering while designing Nuanced Canvas as well as using agentic tools that have embraced dynamic interfaces.
Good software has always embodied opinions about how people should work. Those opinions are expressed through the structure of the interface. It lives in the information hierarchy, and enforces decisions about what gets prominence, which actions are easy, what information stays visible, and which workflows the product encourages.
A code editor's navigation is an opinion about how programmers should understand code. A document editor's structure is an opinion about how people should organize ideas.
When interfaces become more fluid, we lose some of the constraints through which those opinions are expressed.
And I'm not convinced that removing those constraints is always desirable.
Part of what makes a good tool valuable is that its design teaches you something about the work itself. It gives you useful defaults or directs your attention through a well trodden path, and makes certain relationships easier to see. A completely malleable interface risks putting the burden on the user to know what to ask for and how to approach a problem.
There's also value in stability. A representation that persists gives people something to return to, develop familiarity with, and share with others. Not everything should disappear once a question has been answered.
What should stay?
The design challenge I'm facing now is about deciding what deserves to remain stable and what can be constructed on demand.
In Nuanced Canvas, the document is what stays. It's a place to develop an idea and return to it as your understanding changes, while other representations can be constructed when they're useful.
I think of it as a workbench with an open notebook. The tools on the bench change with each task; a call graph when I'm tracing a request, a mermaid diagram when I'm examining a state machine. The notebook holds the understanding I want to carry forward. And the bench itself is deliberately arranged to keep me focused. Its lighting, its layout, and what it keeps within reach all influence how I work. The tools can change without the workspace surrendering its point of view.
As agents take on more of the work of finding, organizing, and presenting information, the opinions underlying a product will have to be expressed in other ways: how it directs attention, what it chooses to preserve, which questions it encourages people to ask, and how it helps them develop understanding over time.