Skip to main content

Typing & Activity Indicators

The WebSocket version shows real-time activity indicators when a conversation participant is doing something — typing a message, recording a voice message, or uploading a file. Each activity has its own distinct icon. The indicator appears instantly and disappears when the activity ends. The "is typing…" pattern that defines modern chat apps, built into Better Messages.

WebSocket version

Activity indicators require the persistent WebSocket connection. The free version doesn't show real-time typing state.

What it adds#

  • "Is typing…" indicator when someone is composing a text message
  • "Is recording…" indicator when someone is recording a voice message
  • "Is uploading…" indicator when someone is uploading a file attachment
  • Distinct icons for each activity type
  • Real-time via WebSocket — sub-200 ms latency
  • Works in DMs, group chats, and chat rooms
  • Appears in conversation header AND inline above the input

How it works#

When a user starts typing, their browser fires a "typing started" event through the WebSocket. The cloud relay forwards this to all conversation participants. Their UI shows the indicator. When the user stops typing for a couple seconds or sends the message, a "typing stopped" event fires, and the indicator disappears.

User actionIndicator shown to others
Starts typing in input"is typing…" with pen icon
Pauses typing > 3 secondsIndicator disappears
Starts recording voice"is recording…" with microphone icon
Cancels recordingIndicator disappears
Starts file upload"is uploading…" with file icon
Upload completes / cancelledIndicator disappears
Sends the messageAll indicators disappear; message appears

In group conversations, multiple users can have indicators at once — e.g., "Anna and Mike are typing…".

When typing indicators matter#

Use caseWhy it improves the experience
Sales chatVisitor knows the rep is composing — won't abandon
Coaching sessionClient feels heard while the coach formulates a response
Group chatAvoids interruptions — wait for the typing person to finish
Customer supportSets expectations — "the agent is responding now"
DatingAdds liveness to the conversation flow

Privacy considerations#

Per-user typing-broadcast opt-out is not exposed as a built-in setting today. The indicator is either on or off site-wide. Sites that need a per-user opt-out can wire one through a custom user-meta toggle plus a React component override.

Frequently asked questions#

Does the indicator stay forever if I stop typing without clearing the input?#

After ~3 seconds of no typing, the indicator auto-clears. The threshold is configurable.

Can users disable seeing typing indicators?#

Not in the default UI. To add a per-user toggle, hook the user-settings panel and use the appropriate filter.

Are typing indicators shown for AI bots?#

Yes — when an AI bot is generating a response, it shows "AI is typing…". Useful for letting users know to wait.

What about offline users? Do they see I was typing?#

No — typing events are real-time only. A user who comes online later sees only the final sent message, not the typing history.

Does typing indicator work in voice / video calls?#

Calls have their own real-time medium (live audio/video). Typing in the chat alongside an active call works normally — the typing indicator displays in the chat panel.

See also#