I build things and share lessons nobody told me straight.
Yesterday I spent three hours trying to replicate one detail from ChatGPT that I liked.
You know when you send your first message in a new chat? The "New Chat" label in the sidebar transforms into your conversation title, letter by letter. Like it's typing itself out. It's subtle. Most people probably don't even notice it.
I thought: how hard can this be? One animation. I'll knock it out in ten minutes.
Three hours later, I gave up.
Here's the problem. It's not one animation. It only types out when it's a new chat. If you refresh the page? No animation. If you switch between chats? No animation. If the title already exists? Nothing moves.
That's five different states. Maybe more. Each one needs different logic, different conditions, different edge cases.
New chat created? Animate. Page refreshed? Don't animate. Title changed? Animate only if it's the active chat. User clicked away mid-animation? Stop it cleanly without breaking the UI.
I threw it in my backlog. Not worth the time right now.
That's one interaction. One tiny moment most people never even notice. And ChatGPT is full of these. Hundreds of them, probably thousands.
It's unreal how products like ChatGPT feel so simple and natural. We don't realize how complex they have to be to make us feel that way.
This is why top products look simple. Every micro-interaction is solved. Every edge case is handled. The simplicity you see is actually thousands of solved problems you never noticed.
That's what building actually looks like.
I'll send you an email when I publish something new. No spam, just real stuff.