FAQ
Does it work across different browsers or devices?
No. BroadcastChannel is same-browser, same-origin. For cross-device sync you need a server round-trip.
Does a tab receive its own messages?
No. The self-filter is built into the platform: incoming messages are always from other tabs. Your own sends are in sentMessages.
Do messages survive a refresh? No. The log is ephemeral. Persist what must survive in storage and announce changes over the channel.
A new tab opened and shows nothing. Why? Messages are not replayed. Use the request/answer pattern in Late-joining tabs.
Can I send objects? Yes, anything the structured clone algorithm handles: plain objects, arrays, dates, maps. Not functions, DOM nodes, or circular structures.
How do I know which tab sent a message?
Every message carries source, the sender’s sourceName. Set friendly names to show “who did it” in the UI.
How do I list the open tabs?
const sources = await ping() returns the source names of the other tabs on the channel. See Tab presence.
Is anything tracked?
Nothing. The library collects no telemetry; the telemetry option is a deprecated no-op. See Telemetry.
