We just shipped a round of improvements to how Starko's chat widget handles AI responses. Conversations should now feel more like talking to a person and less like waiting for a server.
Real-time streaming
Replies now appear as they're generated, character by character, instead of waiting for the full message to complete. The visible cadence is paced on the client, so even when responses arrive in network bursts the bubble fills in smoothly — no more sudden walls of text.
Interrupt and redirect
Sent your message a little too quickly? Just send a new one. The old reply stops the moment you submit, and Starko picks up the new question fresh — no half-finished answer hanging around.
Stable, scrollless flow
We rewired how the widget mounts so the chat thread stays put across navigation and state changes. That removes a class of small visual hiccups: bubbles no longer flicker when a streamed reply finishes, and auto-scroll keeps the latest message in view without yanking you away if you've scrolled up to read.
Under the hood
- Server-side streaming over Supabase Realtime
- Per-frame typewriter rendering with adaptive catch-up
- Generation-tagged event handling for clean supersession when you send a follow-up mid-stream
- Layout-effect transition between streaming bubble and persisted message — no duplicate-render flash