Dote
HelpBlog
← Back to blog

Why Dote Sends Meeting Chat Through PeerJS

Dote chat messages use the same peer data channel as call control messages. Here is why that keeps 1-to-1 meetings simple and real time.

A chat panel is useful in almost every video meeting. People paste links, clarify names, share quick notes, or send a message when audio is muted. For Dote, the best place for those messages is the PeerJS data channel that already connects the two browsers.

One Connection, Two Jobs

PeerJS can carry media calls and data connections. Dote uses the media call for audio and video, and the data connection for lightweight messages:

  • Chat messages
  • Mute and camera state
  • Hangup notifications
  • Connection heartbeat events

That keeps the meeting responsive without creating a second real-time messaging backend for the actual conversation.

Why Not Store Every Chat Message In Firebase?

Dote’s room database is for coordination: meeting existence, participant presence, and basic state. Storing every chat message in the database would create a different privacy and retention model.

Peer-to-peer chat is a better default for quick 1-to-1 rooms. Messages are delivered to the other browser during the meeting, and Dote does not need to keep a permanent transcript to make the call useful.

What Happens If A Peer Disconnects

Peer-to-peer chat depends on the connection being open. If the peer connection closes, new messages cannot be delivered until the browsers reconnect. Dote surfaces that as a meeting state issue rather than silently pretending the message was stored somewhere else.

For future paid or team features, durable meeting notes could be added intentionally with consent and clear retention controls.

Good Chat Behavior In Small Meetings

In a 1-to-1 call, chat should stay available but not dominate the screen. Dote keeps it in a drawer so the video stage remains primary. New unread messages are indicated from the control bar, and the drawer can be opened when the conversation needs text.

That is enough for most focused calls: send the link, confirm the detail, return to the person.