Live chat for any website
Visitors ask on your site. You answer from wherever you already work.
One script tag on any hosted site. Visitors talk from the bubble; your team replies from CanWeChat, Slack, Discord, or Telegram — without standing up another support suite.
No card to start · $19/month after trial
On your site
Can you add SSO before launch?
Yes — we’ll send the steps.
In Slack, Discord, Telegram, or the inbox
Thanks — that unblocked us.
Delivered in realtime
How it works
A question on the page becomes a reply in the tools you already have open.
01 · Visitor
They chat from the bubble
A ~10 KB vanilla widget, Shadow DOM, no React on the host page. It runs on whatever you already shipped to the browser.
02 · Your team
You pick one reply channel
Inbox, Slack, Discord, or Telegram. One active destination so answers do not fork across four inboxes.
03 · Back on the site
They see it in the same thread
Replies land in realtime. If the socket drops, the widget catches up over HTTPS so nothing is lost.
Everywhere
Supported on every site, in every framework.
One script tag. Add it to any page you control — then lock the key to your domains and go live.
Install
Before your closing body tag
<script async src="https://canwechat.dev/api/widget.js" data-site="pk_live_…"></script>
Then list the hostnames that may load it. First successful config request marks the site installed.
~10 KB
vanilla widget
4
reply destinations
1
script, any stack
3 days
free to try
Product
Small enough to forget. Complete enough to keep.
Realtime both ways
Visitor and agent messages share one conversation, including reconnect and HTTP catch-up if the socket drops.
Works everywhere
A vanilla script with Shadow DOM. Drop it into any site, in any framework you already use.
Domain locking
The public site key only answers from hostnames you list. Subdomains can inherit from a parent you allow.
Reply where you work
One active destination: the CanWeChat inbox, Slack, Discord, or Telegram. Visitors still see the same bubble.
Signed webhook relay
HMAC-SHA256 events into your own backend, with retries and delivery history — for CRMs and custom apps.
Unanswered reminders
One reminder per waiting visitor message, through the reply channel you chose, so threads do not go quiet.