It's Gmail for a reason
I kept inventing a better inbox — a smarter sort, a smarter badge, rows that recede once they're handled. Four times, and every one of them lost to the plain Gmail version the first time a real person touched it. Here's the rule I took from losing four times: copy the incumbent exactly, and spend all your novelty on the one thing it structurally can't do.
I keep inventing a better inbox. Four times now — and every one of them lost to the plain Gmail version the first time a real person touched it. The last one lost this week.
The badge that meant the wrong thing
The shop owner who uses Dustav all day sent me a screenshot. Two new emails had come in overnight. The counter on the sidebar hadn't moved, and both rows were already greyed out.
Nothing was broken. The counter meant emails that need you, and Dustav had already handled both — drafted the replies, filed the dates. The grey meant handled. Working as designed.
She read the number as unread. Of course she did. Every mail client she has ever used, for twenty years, has had a number in the corner that means how many you haven't seen, and a bold row that means this one is new. I had taken the most universally understood convention in software and quietly repurposed it to mean something else, and then been surprised when it communicated the other thing.
Her version of the fix was one sentence: every email needs me; what matters is new versus seen, newest first. Which is to say: Dustav needs an unread.
Three inventions, three losses
Once I went looking, it wasn't one mistake. It was a pattern, and I'd been repeating it since the day I started building an inbox.
Needs-you as the structure. The inbox was organized around Dustav's judgment of whether you had to act — actionable up top, a divider, the rest below. It's a defensible idea. It is not how anyone reads mail. Newest first, and let the reader decide.
Smart sort. The list reordered itself by what Dustav thought was important. When I went to remove it, I found its twin on the sent side had been doing literally nothing for weeks — the "smart" ordering there resolved, in every real case, to exactly the same order as newest-first. I'd shipped a control, given it a dropdown, and never noticed it was a no-op. That's what an unexamined invention looks like from the inside.
Handled rows recede. A row Dustav had dealt with faded back. Reasonable — except a brand-new email that Dustav happened to handle in the same minute it arrived showed up pre-faded. It arrived looking read. The one moment you most need the interface to shout, it whispered.
And a week before all three, the folder rail: I put her entire Gmail folder tree down the side of the app. She asked why her whole folder structure was in here — she thought this was an AI for active email. I deleted it that afternoon.
Four inventions. Four losses. Each one lost to the boring thing it had replaced.
One rule, no exceptions
So the inbox went Gmail-shaped, and the interesting part was how far to take it.
Gmail clears unread on open, and only on open. File a message from the list without opening it and it stays unread in its folder. Archive it — still unread. A reply counts as read only because you had to open the conversation to write it.
I found that slightly dumb, and proposed a smarter rule: if you file a message from the list, you obviously saw it, so mark it seen. It's better. It leaves fewer stragglers.
I killed my own proposal. Because the deviation buys a tidier folder count and costs the one thing that makes a convention worth adopting: that it holds everywhere, with no exceptions to learn. Read state changes on open, and only on open. One sentence, zero footnotes. The residual weirdness — a filed message still bold inside its folder — isn't a bug. It's Gmail. Every user already has a mental model for it, and that model is free.
The same call went the other way on the preview pane. She asked for one, Outlook-style. Opening a preview marks the message read — in Outlook, in Gmail, everywhere. So it does here. Not a new rule. Not an exception. The same rule, applied.
Where the novelty goes
Here's the reframe that made all of this feel like a win instead of a retreat.
These conventions are not Gmail's taste. They're twenty years of testing on a billion people, and the good ones survived because they work. Every hour I spend re-litigating unread — or sort order, or what archive means — is an hour I'm not spending on the one thing Gmail structurally cannot do, which is the entire reason Dustav exists:
Gmail never read your mail. Dustav did.
So that's where the whole divergence budget goes. Gmail shows you the first line of the message; Dustav shows you what it's about, decoded. Gmail shows you a bold row; Dustav shows you a bold row with "reply ready" sitting next to it, because it already wrote one. Gmail can offer you a preview of anything; Dustav can offer you a free peek at the junk it already triaged, because looking costs nothing when the agent has read it once already.
Be exactly Gmail everywhere Gmail was already right. Spend all the novelty on having read the mail.
The same lesson, one floor up
I've written this essay before, at a bigger scale.
I built a whole companion AI on a beautiful idea about what people want, and the one thing that landed was the boring utility underneath it. That cost me a product. This time the same lesson cost me a sort dropdown and a badge definition. Same shape, one floor down: the a-priori thesis about what users need loses to the user, every time, in public, on a screenshot.
What's changed is how fast I recognize it. Four inventions is a lot. But the folder rail sat there a week before I saw it, the sort control took a day, and by the time she sent the screenshot about the badge I already knew what the answer was going to be before I opened the code.
The rule
Before you invent an interaction, check whether the incumbent already solved it. If it did, copy it exactly — including the parts you find slightly dumb, because the exceptions are the expensive half. Save your novelty for the thing the incumbent structurally can't do.
If your product's whole reason to exist is one new capability, then every convention you reinvent is budget stolen from the only part anyone's paying for.