AI chat UI · product notes

AI Chat UI Is Way More Complex Than It Looks

AI chat looks like a simple message list, but the real product work is anchoring, streaming, keyboard behavior, scrolling, context, and trust.

July 2, 20267 min readBuild in public
Abstract mobile AI chat interface showing anchors, streaming responses, keyboard space, and scroll behavior
This article expands on a short founder note I posted about why AI chat screens are deceptively hard: read the original post.

People look at an AI chat screen and think it is simple.

A message list. An input field. A send button. Done.

Not even close.

I posted a tiny thought about this because it keeps showing up while building Nala: AI chat UI is way more complex than it looks. The screen is visually quiet, but the behavior underneath is weirdly demanding.

In a normal chat, the newest message naturally sits at the bottom. You send something, it joins the conversation, and the thread keeps moving down.

In an AI chat, the user message often needs to become the new anchor of the screen. It may need to move near the top so the assistant can answer underneath it, stream in place, show tool progress, attach actions, and still keep the user oriented.

A chat screen can look simple and still be one of the hardest parts of the product.

Normal chat is a conversation. AI chat is a workspace.

That difference changes everything.

A normal messaging app mostly has to preserve a timeline between people. The job is delivery, ordering, read state, and making the newest message easy to reach.

An AI assistant chat has a different job. It is not only showing a conversation. It is becoming the control surface for work.

The user might be asking for a task, a plan, a clarification, a note, a reminder, a research step, or an agent handoff. The assistant may answer in text, call tools, create structured output, or continue streaming while the interface updates around it.

That means the UI has to support thinking, waiting, editing, retrying, cancelling, scrolling, and continuing — without making the user feel lost.

Normal chat: newest message falls to the bottom

The timeline is the product. The newest message naturally lands after the previous one.

Message from a person
Reply
Next message

AI chat: the prompt becomes the workspace anchor

The user prompt often needs to stay near the top while the assistant streams work below it.

Plan my day and move the tasks

Streaming: the answer grows while you watch

The bubble is alive. Height, scroll position, and tool progress all change together.

Thinking through the task…

Keyboard: half the screen just moved

On mobile, the composer has to stay reachable without covering the work or jumping around.

Write it as tasks
Got it — turning this into next actions.

The anchor problem

The hardest tiny detail is the anchor.

After the user sends a prompt, what should stay visually stable?

Every answer creates a different feeling.

If the screen moves too aggressively, the product feels jumpy. If it does not move enough, the user loses the answer. If the composer fights the keyboard, the whole thing feels cheap. If the assistant is doing work in the background and the scroll position is wrong, the user starts wondering whether the product is broken.

This is why AI chat UI is not just “messages in a list.” It is a live layout problem.

Streaming makes the layout alive

AI answers do not usually arrive as one clean message. They stream.

That makes the message bubble grow while the user is looking at it. The page height changes. The scroll position changes. Tool progress may appear and disappear. Buttons may need to switch state. The composer may need to stay reachable without covering the answer.

The interface has to feel calm while the content is literally changing under the user’s eyes.

That is not a small design detail. That is product trust.

The keyboard is part of the product

On mobile, the keyboard is basically a second operating system that shows up whenever it wants and changes the entire geometry of the screen.

If the input jumps, if the send button moves awkwardly, if Hebrew and English text direction behave differently, or if the page scrolls to the wrong place, the user does not think “interesting layout bug.”

They think: this assistant feels unreliable.

That is why the boring work matters: composer behavior, keyboard overlap, text direction, row animation, and scroll anchoring. None of it sounds like AI. All of it changes whether the AI feels usable.

For Nala, chat is not the whole product — but it is the front door

Nala is not being built as just another chat box. The bigger direction is a personal assistant that can understand tasks, remember context, route work, and eventually coordinate with AI agents.

But chat is still where messy intent enters the system.

That makes the chat screen important in a very practical way. It has to let the user throw in an unfinished thought and still feel like the product knows what to do next.

The UI needs to make the assistant feel less like a text generator and more like a place where work starts moving.

The product lesson

The surprising thing about AI chat is that the simplest-looking screen carries the most product weight.

That is the part people miss.

The model can be brilliant. But if the chat UI feels unstable, the user will not trust the brilliance.

So yes, AI chat looks simple.

That is exactly why it is hard.

Quick answers

Why is AI chat UI harder than normal chat UI?

Normal chat mainly preserves a message timeline. AI chat also has to handle streaming answers, tool progress, scroll anchoring, keyboard behavior, retries, and structured actions.

What is scroll anchoring in AI chat?

Scroll anchoring is the decision about what part of the conversation should stay visually stable while new content streams, grows, or moves on screen.

Why does AI assistant UX matter if the model is strong?

Users experience the model through the interface. If the chat feels jumpy, confusing, or unreliable, the assistant feels unreliable even when the underlying model is capable.