You’ve seen this before.
Someone is typing…
You wait…
Nothing comes.
Still typing…
Still waiting…
👉 And it never stops.
This is called a ghost typing bug.
So I created a challenge on VibeCode Arena to test how systems handle this.
And honestly… most solutions failed in interesting ways.
🚨 The Problem
At first glance, the logic looks simple:
- User starts typing → mark as typing
- User stops typing → remove from list
- Show active typing users
Seems correct.
But real-world systems don’t behave perfectly.
⚠️ What Can Go Wrong?
In real applications:
• User closes app without sending “stop typing”
• Network delay causes events to arrive late
• “Stop typing” event is never received
• System keeps stale data
And suddenly:
👉 User appears as typing forever
👉 UI becomes confusing
👉 Experience feels broken
🧠 What I Observed
When AI models tried this challenge:
- Some handled start/stop logic
- Many ignored missing events
- Some didn’t handle timeouts
- Very few handled real-time inconsistencies
The code works.
But the system feels wrong.
🔍 The Real Issue
This is not just about state.
It’s about real-time reliability.
Because:
👉 Events can be lost
👉 Timing is unpredictable
👉 Systems must recover automatically
💡 What a Better System Needs
A proper typing system should:
- Add automatic timeout (e.g., 3–5 seconds)
- Handle missing “stop typing” events
- Refresh state periodically
- Use real-time communication (WebSockets)
- Prevent stale indicators
This ensures:
👉 No ghost typing
👉 Clean user experience
🔥 Try My Challenge
I created this challenge to test real-time system thinking.
👉 Try it here:
https://vibecodearena.ai/duel/8e38434c-d1cc-4d98-b1a3-ea9677348050/42915701-2dec-48cd-bc76-cef4ca7bf26d
Can you:
- Remove ghost typing?
- Handle missing events?
- Build a reliable real-time system?
🎯 Final Thought
Typing indicators are not about showing activity.
They’re about showing correct activity.
Because in real-time systems…
👉 Even small delays can create big problems.
Try it and tell me 👇
Did AI fix ghost typing… or leave users typing forever? 👀




Top comments (0)