WritingMay 2026

The cart is the conversation

Three versions of the same cart. They share a spec. They disagree about what to say.

William MartinssonMay 17, 20264 min read

A cart on the web is usually built as a list of rows. Add something, the list grows. Remove something, the list shrinks. The mechanics are solved. The interaction stays flat.

That is the misunderstanding. A cart is not a list. It is the place where a user is most uncertain about what they have just committed to, and the design of a cart is the design of that uncertainty. Treating it as state management produces a cart that records the user's decisions without acknowledging them.

In 1982, an IBM researcher named Walter Doherty published a paper called The Economic Value of Rapid Response Time. Its central finding was that human productivity does not rise smoothly with system speed. It jumps, at a specific threshold of around 400 milliseconds. Below that line, the user stops waiting and starts thinking. Above it, the system is something they talk to instead of using.

Most carts on the web sit well above that line. The user clicks +, a request goes to the backend, the network answers, the number changes. Nothing is wrong with it. Nothing is right with it either. The cart is silent in the moment that matters. If you have ever clicked + twice because you were not sure the first click registered, you already know what is happening — the interface is asking the user to model the server.

Fig. 01Silent — the baseline cart

Wooden Stool

Wooden Stool
700.00 SEK
1

Bioglow

Bioglow
500.00 SEK
1

Polaroid

Polaroid
2 500.00 SEK
1

A different version of the same cart admits the work. The stepper replaces its glyph with a spinner the moment it is pressed. The removed row slides out instead of vanishing. None of the latency has changed, but the cart is now in the conversation. It says “I'm working on it” — slower on the wire, faster in the head.

Fig. 02The cart admits the work

Wooden Stool

Wooden Stool
700.00 SEK
1

Bioglow

Bioglow
500.00 SEK
1

Polaroid

Polaroid
2 500.00 SEK
1

A third version commits before the server does. The quantity changes at the click, and the request leaves in the background. If it fails — almost never — the UI rolls back. The cart now says “Done” before it knows. This is the version where the user stops talking to a system and starts using a tool.

Fig. 03The cart commits first

Wooden Stool

Wooden Stool
700.00 SEK
1

Bioglow

Bioglow
500.00 SEK
1

Polaroid

Polaroid
2 500.00 SEK
1

All three carts share the same feature spec. The data model does not move. The QA list is identical. What changes is whether the cart speaks up while the user is still in the moment.

The optimistic cart is the only one of the three that crosses Doherty's line. It is also the only one that required the designer to decide what the cart would say before the server had answered. The other two are still well-built. They are simply not in the conversation.

That is the part I keep coming back to. The cart is not a list of rows. It is the conversation around the rows.

An interface that says nothing is not neutral.

It is a position.