Pinned post
If AI brings us the promise of the future, why are we still stuck in the past with chatbots in Markdown?
Most AI applications today still work like a terminal from decades ago: you type a prompt, the agent runs a tool, and it dumps a wall of text back at you. Modern agentic interfaces should not only use richer UI elements, they should also adapt to what the user needs instead of forcing everything through a static, one-size-fits-all screen.
That changes how we think about frontend development. Instead of designing hardcoded application screens upfront, we design a shared catalog of UI building blocks and let the agent assemble the interface on demand.
Google's open Agent to User Interface (A2UI) protocol was built for this. Your frontend keeps full control over styling and native components, while the agent decides what to display based on context across three primitives:
• Catalog: The menu of UI components (charts, gauges, tables, 3D views, buttons) shared between the backend agent and the frontend client.
• Surfaces: The live UI canvas that updates in real time as the agent streams structured JSON messages.
• Actions: Two-way events that turn a click on a table row, graph node, or button directly into the next turn of the conversation without typing a follow-up prompt.
In my latest article, I used A2UI and Genkit to give my diagnostic agent, AIDA, the modern glowup she deserves, with dynamic UI elements rendered on-demand and human in the loop tool approvals for the most critical operations.
Read the full article on danicat.dev:
danicat.dev/posts/designin…
Companion repository:
github.com/danicat/go-aida
Most AI applications today still work like a terminal from decades ago: you type a prompt, the agent runs a tool, and it dumps a wall of text back at you. Modern agentic interfaces should not only use richer UI elements, they should also adapt to what the user needs instead of forcing everything through a static, one-size-fits-all screen.
That changes how we think about frontend development. Instead of designing hardcoded application screens upfront, we design a shared catalog of UI building blocks and let the agent assemble the interface on demand.
Google's open Agent to User Interface (A2UI) protocol was built for this. Your frontend keeps full control over styling and native components, while the agent decides what to display based on context across three primitives:
• Catalog: The menu of UI components (charts, gauges, tables, 3D views, buttons) shared between the backend agent and the frontend client.
• Surfaces: The live UI canvas that updates in real time as the agent streams structured JSON messages.
• Actions: Two-way events that turn a click on a table row, graph node, or button directly into the next turn of the conversation without typing a follow-up prompt.
In my latest article, I used A2UI and Genkit to give my diagnostic agent, AIDA, the modern glowup she deserves, with dynamic UI elements rendered on-demand and human in the loop tool approvals for the most critical operations.
Read the full article on danicat.dev:
danicat.dev/posts/designin…
Companion repository:
github.com/danicat/go-aida