Yelp Combines Native and Server-Driven UI for Its AI Assistant
Article text
11 paragraphs · Tap (click) a word or select text to translate · Tap a word or select text to translateYelp has adopted a hybrid user interface architecture for its AI Assistant, combining native mobile controls with server-driven conversation rendering to support faster interface changes across platforms. The design uses Yelp’s CHAOS framework, short for Content Hosting Architecture with Optimization Strategies, to render conversation content while keeping navigation and message input native.
Yelp Assistant launched on iOS in 2024 to help users create project requests for local service professionals. It has since expanded to answer questions about businesses and support actions such as reservations, appointments, and food orders.
CHAOS supports web, iOS, and Android. In a server-driven UI architecture, the backend defines what the client displays and how it responds to interactions, so interface changes can reach users without requiring a new mobile app release.
Daniel Andrade Groppe, Services Tech Lead at Yelp, highlighted,
Our existing CHAOS framework lacked some of the capabilities the Assistant required, including text input fields and network requests. Extending the framework would have delayed delivery, so we took a hybrid approach: we kept navigation and message input native while using CHAOS to render the conversation area.
Yelp Assistant UI: Native and Server-Driven Components (Source: Yelp Blog Post)
The implementation separates view configuration from conversation data. When a chat starts, the client fetches the CHAOS configuration and initializes a dataset for message events. Subsequent events update the existing view without refetching the configuration. Events represent persistent user and bot messages, temporary typing indicators and quick replies, and links that open destinations. The backend can also send actions to control the interface. For example, when a project request is complete, it can return a message, a link to view matches, and an action that disables chat input. This event-driven design decouples rendering from conversation logic.
Airbnb has documented a related approach through its Ghost Platform, which uses server-defined UI across web and mobile clients. Both approaches let teams update supported presentation without requiring every change to ship in a new client release. Yelp’s implementation applies this model to a conversational interface while retaining native controls and client-side handling for message state and interactions.
Yelp Assistant UI Chat Interaction Flow (Source: Yelp Blog Post)
The client displays submitted messages and a typing indicator, disables input, and sends requests to the backend. On response, it displays the reply and quick replies and re-enables input. Recoverable errors trigger retries, while non-recoverable failures disable input and prompt users to try again later.
Yelp engineers note that the architecture also introduces coordination challenges and engineers needed time to learn both the Assistant and CHAOS, and shared implementations can still behave differently across platforms. Separating view configuration from conversation data enables independent feature development. The architecture also supported reusing the Android Assistant to launch the Biz Ask Anything pilot. According to Yelp, this work laid the groundwork for its next-generation Assistant, which now connects business information with actions users can take.
For when the paragraph translations don't line up
Full translation
Tap (click) a word to translate it, or select text to translate that passage straight away.