Conversations that
show up when they happen.
Log in with a phone number, find anyone by name, and start talking — 1:1 or as a group. Every message lands over a live socket, every scroll position is respected, and every empty send gets caught before it leaves your keyboard.
From real testing sessions
Engineering Core Team
live
What actually happens under the hood
Every item below is a real, working part of the app you can open right now — not a roadmap.
Real-time, actually
Messages arrive over a live Socket.io connection the instant they're sent — no polling, no manual refresh. Your own outgoing message and everyone else's incoming ones are reconciled by id, so nothing ever shows up twice.
Auto-scroll that respects you
New messages pull the view down only if you're already at the bottom. Scroll up to read history and it stays put — with a quiet "new messages" pill instead of yanking you back down.
1:1 and group, one flow
Search by name or phone to start a direct chat, or spin up a group with your team. Empty messages are blocked client-side before they're even sent.
Find anyone, instantly
A debounced live search against real user accounts — type a name or number and the sidebar updates as you go.
Sends that don't lie to you
Every message appears optimistically the moment you hit send. If it fails, the bubble says so — with a one-tap retry, right where the message lives.
Built on a real API
No mock data. Every screen talks directly to the live Chat API — documented from scratch, quirks and all, in API.md.