WebChat is a decentralized browser extension, published under the MIT licence, that lets visitors of the same website chat anonymously with each other, and it is aimed at anyone who wants to talk with whoever happens to be on the page they are reading without creating an account or leaving the site.
What it is
WebChat is a cross-browser extension written in TypeScript that turns any website into a shared chat room. After installation it places a ghost icon in the bottom-right corner of every page; selecting that icon joins the chat room for the current site and connects the user with other visitors who are on the same page at the same time. Communication runs over WebRTC in a peer-to-peer topology, with end-to-end encryption, so there is no central chat server in the middle of a conversation. The project describes itself as data-on-device: messages are not collected by a backend the operator controls.
The concrete problem it solves is the absence of a persistent, site-scoped conversation channel on the open web. Comments sections and forum threads belong to the publisher, require an account, and usually persist the history. WebChat replaces that model with an ephemeral, per-URL room that exists only while peers are present. Because there is no server, the project does not need to operate infrastructure for message relay or storage, and it does not own the conversation. The trade-off embedded in that design is that the room is only as populated as the current visitor count, and nothing is retained once participants leave.
Key capabilities
- Decentralized peer-to-peer transport over WebRTC, with end-to-end encryption and no central chat server.
- Per-website chat rooms, entered by selecting the ghost icon in the bottom-right corner of any page.
- Distribution as a browser extension through the Chrome Web Store, Microsoft Edge Add-ons, and Firefox Add-ons.
- Cross-browser extension framework and build tooling provided by WXT.
- Two interchangeable WebRTC room transports: Artico as the default, and Trystero as an optional transport using its default Nostr strategy.
- RPC communication across the extension's JavaScript contexts via Comctx, so background, content, and UI scripts can call into one another.
- Randomly generated avatars via ugly-avatar, plus a DDD-inspired state model from Remesh keeping application logic separate from the React UI built on shadcn/ui.
Who uses it and how
- Visitors of high-traffic pages who want to comment on what they are reading without registering for the site or leaving it.
- Communities that gather around a specific URL at a known time, where the room fills because many people are present simultaneously.
- Privacy-conscious users who want conversation to stay on their own device, since no server stores messages.
- Contributors and self-builders working against the TypeScript codebase with WXT, who follow a CI workflow defined in
.github/workflows/ci.yml.
- Users seeking support or shared usage patterns through the linked WebChat Discord community.
Getting started
Install the published extension from the Chrome Web Store, Microsoft Edge Add-ons, or Firefox Add-ons; no server deployment or account setup is part of the documented path. The README is also available in a Simplified Chinese translation at README_zh.md.
How it compares
No list of paid products that WebChat replaces is provided in the available facts, and the project names no directly comparable chat tools, so it stands alone in this registry for now. The closest related components named are its own dependencies, Artico and Trystero, which supply the WebRTC room transport rather than competing with the extension.
When to use it โ and when not to
Because the peer-to-peer design means there is no database, object storage, or SMTP service for a self-hoster to run, the operational burden is limited to building and packaging the extension if the storefront builds are not suitable. Anyone who needs message history, moderation, persistent identity, or a guaranteed audience should not pick it, since rooms are only populated while other visitors are present and nothing is archived. The README is short and focused on installation and credits, so expect to read the source for architecture detail and to treat WebRTC connectivity as the main thing that can go wrong.
project readme (upstream, from github) โ read inline
English | ็ฎไฝไธญๆ
WebChat

Chat with anyone on any website.
WebChat is a decentralized browser extension that lets people visiting the same website chat anonymously. It uses WebRTC for end-to-end encrypted, peer-to-peer communication, so there is no central chat server and your data remains on your device.
Turn any website into a shared chat room and connect with the people who are already there.
Install
Chrome Web Store
·
Microsoft Edge Add-ons
·
Firefox Add-ons
Usage
After installing WebChat, a ghost icon appears in the bottom-right corner of each website. Select it to join that site's chat room and talk with other visitors.
Demo
https://github.com/user-attachments/assets/e7ac9b8e-1b6c-43fb-8469-7a0a2c09d450
Community
Join the WebChat Discord community to share feedback, ask questions, and meet other users.
Built With
WebChat builds on these excellent open-source projects:
- Remesh provides the DDD-inspired state model that keeps application logic independent from the React UI.
- shadcn/ui provides accessible, customizable UI building blocks.
- WXT provides the cross-browser extension framework and build tooling.
- Comctx provides RPC communication across the extension's JavaScript contexts.
- Artico provides the default WebRTC room transport.
- Trystero provides an optional WebRTC room transport using its default Nostr strategy.
- ugly-avatar generates WebChat's distinctive random avatars.
License
WebChat is available under the MIT License.