There Is No Application · Chapter 13
A New Design System: When AI Influences the UI
We have architected a dynamic, intelligent backend. A fleet of agents that can think, act, and collaborate. But what does the user see? If we connect this powerful system to a traditional, static, hand-coded front-end, we lose most of the benefits. We would be piping a river into a bathtub.
To realize the full potential of our "No Application" architecture, the user interface itself must become as dynamic as the agents that power it. The front-end can no longer be a rigid set of pages; it must become a dynamic renderer. The UI becomes the final step in a conversation between the user and the agent fleet.
The Manifest-Driven UI
In this new paradigm, agents don't just decide what information to show the user; they also have a say in how it's shown. They do this by generating a UI Manifest, a blueprint that describes the desired user experience.
Imagine our user is looking for a home to buy.
- The user tells our real estate agent, Torria, "I'm looking for a family home near a good school in Lisbon."
- Torria understands the intent. She queries the Governed Data Store to find three relevant properties.
- Now, instead of just returning raw data, Torria collaborates with a design-specialist agent, Curatia (the Curator of Presentation).
- Curatia analyzes the context: the user is on a mobile device and seems to be in an initial discovery phase. It decides the best experience is a map view alongside a swipeable card list. It generates a UI Manifest:
```json
{
"layout": "two-column-mobile-split",
"composition": [
{
"componentId": "InteractiveMap",
"data": { "locations": "[...]" }
},
{
"componentId": "PropertyCardCarousel",
"data": { "properties": "[...]" }
}
]
}
```
- This manifest is sent to our front-end worker, the Dynamic Renderer. The renderer's job is not to be a "web page," but to be an interpreter. It reads the manifest, finds the corresponding components in its library (
InteractiveMapandPropertyCardCarousel), injects the data, and renders the complete user experience on the fly.
The UI is no longer a static template; it's a dynamic composition assembled in real-time to perfectly match the user's current context and intent.
The Component Catalog: The DNA of the UI
This manifest-driven approach is only possible if the agents and the renderer share a common language. They need a dictionary of available building blocks. This is the Component Catalog.
The catalog is the single source of truth for your design system. For every component in your library (e.g., a ProfileHero, a DataTable, a ReviewCarousel), there is a corresponding entry in the catalog. This entry is a rich contract that defines the component's capabilities and requirements.
Based on the design systems in our reference architecture, a catalog entry includes:
componentId: The unique, machine-readable name of the component.dataContract: A Zod-like schema defining the exact shape of the data the component needs to function. The renderer will use this to validate the data from the manifest.aiInstruction: A natural language prompt for the AI. It explains what the component is for and when it should be used (e.g.,"Use this component when a business profile needs a large identity block with proof and conversion actions.").humanInstruction: Plain language documentation for human developers.
The catalog is the critical bridge between your AI and your UI. The DESIGNFACTORY agent uses the aiInstruction to intelligently choose the right components when building a manifest. The Dynamic Renderer uses the dataContract to safely render the component with the provided data.
The front-end developer's job is no longer to build pages, but to build a powerful library of these "governed components" and to define their contracts in the catalog.
Designing for a Fluid World
When your UI is no longer a set of fixed screens, new UX challenges and opportunities emerge.
- Streaming and Skeletons: An AI agent might take a few seconds to "think." A good UI doesn't just show a spinner. It can stream the response as it's being generated. For structured data, it might first render the "skeleton" of the UI based on the manifest, and then populate the components as the data streams in. This gives the user immediate feedback and a feeling of progress.
- Handling Uncertainty: What if the agent isn't 100% sure about an answer? A rigid UI would either show the wrong information or nothing at all. A dynamic UI can render a special "confidence" component. "I think the answer is X, with 85% confidence. Would you like me to double-check?" This turns uncertainty from a bug into a feature, building user trust through transparency.
- Explainable UI: The user experience can be magical, but it shouldn't be a black box. The UI can include affordances to explain why it looks the way it does. A small "Why am I seeing this?" button could reveal the agent's reasoning: "We're showing you these properties first because you mentioned wanting to be near a good school."
The Designer's New Role
This paradigm shift elevates the role of both designers and front-end developers.
- Front-end developers move from being page-builders to system-architects. They create the powerful, reusable, and data-driven components that form the building blocks of every possible user experience.
- Designers move from creating static mockups in Figma to defining the rules, behaviors, and contracts of the design system itself. They design the
aiInstructionin the catalog. They think about how components should gracefully handle streaming data or states of uncertainty. They become the "agent architects" of the user experience.
This approach is the ultimate expression of our "No Application" philosophy. We are building a system that can invent the perfect interface for every user, for every task, at every moment.
