DEV Community

Ravi
Ravi

Posted on

Day 5: Beyond Chat — Canvas Interfaces, Adaptive UX, and the Security Bill Coming Due

This is Day 5, the finale of my 6-part series on how LLMs rewrote the user interface over the past year. Day 4 covered MCP Apps. Today: everything that doesn't fit in a bubble or an iframe — and the bill for all of it.

The transcript was never the right shape for thinking

The generative UI generations (Days 2–4) fixed how agents show things. They didn't fix how we think with them. A conversation is still a line — and thinking isn't linear.

The most interesting interface work of the past year attacks exactly that. Canvas-style and branching interfaces treat a conversation as a navigable map instead of a transcript: every response is a node you can branch from, so exploring three alternatives doesn't mean three scrolled-past dead ends — it means three visible branches you can compare side by side, merge, or prune. Users of these tools stop saying "scroll up to where we discussed X" and start saying "go back to that node."

The patterns showing up across research prototypes and shipping tools:

  • Highlight-and-branch — select any fragment of an answer and fork a new thread from precisely that point
  • Merge — select multiple branches and synthesize them into one node
  • Spatial memory — ideas stay where you put them, which turns out to matter enormously for navigating work that took hours

If Day 0's complaint was "conversations are where information goes to die," this is the rebuttal: stop treating the conversation as a log, start treating it as a workspace.

The disappearing interface

The second post-chat thesis is quieter: maybe the LLM shouldn't have an interface at all — it should live inside the interfaces you already use.

Instead of an open-ended chat box in the corner of your app, the model is embedded at the point of work: a "fix this" affordance on a failing test, a "draft reply" inside the ticket, a summarizer attached to the thread. Context comes from the structured workflow, not from the user retyping it. No prompt engineering, no blank-box paralysis — the application supplies the context, and the model's output lands as a structured change, not a paragraph.

Combined with memory, this points somewhere genuinely new: adaptive interfaces. An agent that knows you always sort flights by departure time can stop asking — and with the Gen 2/Gen 3 machinery from this series, it can re-render the interface to lead with what you care about. The UI stops being one artifact shipped to all users; it becomes a per-user, per-moment negotiation. Designers spent decades crafting one interface for everyone. The next decade is about crafting the constraints within which a million interfaces generate themselves.

The security bill comes due

Now the part most launch posts skip. Every capability in this series is also an attack surface, and 2026 is the year that stopped being theoretical.

Prompt injection is OWASP's #1 LLM risk — and generative UI gives it pixels. The classic attack hides instructions in content the model reads (a webpage, an email, a PDF). The generative UI version is worse: the injected instructions can now shape what the user sees. Consider an agent that reads an attacker-controlled page and renders a "confirmation card":

Enter fullscreen mode Exit fullscreen mode

In a text-only world, that produces a weird paragraph the user might side-eye. In a generative UI world, it produces a legitimate-looking button rendered by your own design system. The interface itself becomes the phishing vector. This is why the architecture choices from Days 2–4 matter so much:

  • Gen 1/Gen 2's data-not-code stance limits injection to content, never execution
  • A2UI's catalog means an attacker can't invent component types — but they can still mis-use allowed ones
  • MCP Apps' host-gated tool calls mean a hostile iframe can request a payment but can't execute it without the host's approval flow

The defenses that actually work are boring and structural: treat all model output that came from untrusted input as untrusted; require out-of-band confirmation (host-rendered, not agent-rendered) for anything irreversible; log every UI-initiated action; and never let the agent render the approval UI for its own actions. That last one deserves to be a law: the entity requesting an action must not draw the screen that approves it.

Add the supply-chain angle — Veracode found 45% of AI-generated code carries at least one OWASP Top 10 vulnerability, and Gen 3 tool UIs are increasingly vibe-coded themselves — and the picture is clear: the interface layer is now part of your threat model.

The year in one picture

2024–2025:  chat bubbles → thinking panels → artifacts → canvas
Gen 1:      agent picks your components        (AG-UI)
Gen 2:      agent composes your primitives     (A2UI)
Gen 3:      agent ships its own surface        (MCP Apps)
Next:       per-user adaptive UI, spatial workspaces,
            and security as a first-class UI concern
Enter fullscreen mode Exit fullscreen mode

What this means if you build frontends

Reading this series, you might conclude frontend work is being automated away. I'd argue the opposite — it's moving up a level:

  1. Component libraries become agent vocabularies. Your design system is no longer just for humans; it's the constraint language agents compose within. API design skills apply to UI now.
  2. The hard problems are trust UX. Approval flows, provenance ("which tool rendered this?"), and injection-resistant layouts are unsolved, high-value design problems.
  3. Taste is the moat. Agents can generate a thousand layouts; deciding which one is right — and encoding that judgment into catalogs, linters, and prompts — is the new craft.

The chat box was scaffolding. What we're building behind it is bigger than what it replaced: interfaces that are generated, personal, and alive at runtime. It's the most interesting time to be a frontend engineer since the browser wars.

Thanks for following along — the whole series is on my profile, starting with Day 0. If you build something with AG-UI, A2UI, or MCP Apps, drop it in the comments — I'd love to see it.

Top comments (0)