Do I need an npm package or a React component?
No. The script tag goes in index.html, outside React, and the chat runs in its own iframe. There is nothing to import and no component to render.
Install guide
The widget lives outside your component tree: one script tag in index.html, no npm package, no React component. It stays on screen while React Router changes pages.
No credit card needed · Free for 21 days
Where it goes
The snippet is the same on every platform: one script tag just before the closing body tag. These steps show where that is on React.
Add your website under Websites, using the domain you are installing on, and copy the snippet from its Embed code page. It has your site ID filled in; the one shown here uses a placeholder.
With Vite it is index.html at the project root. With Create React App it is public/index.html. Both are plain HTML files that wrap your React app.
Put it after the script that loads your app. The tag is async, so it never delays your bundle.
The chat bubble shows on every route, because a single-page app never leaves this HTML page.
Good to know
What you get
The widget lives in its own iframe, so it looks and works the same on React as everywhere else.
That is the whole install. No npm package, no build step, no plugin to keep updated.
Visitors see your answer the moment you send it, without refreshing. Your team replies from one inbox.
When nobody is online, visitors leave their email and a message, and the chat picks up where it left off.
No IP addresses, no fingerprinting, no third-party scripts. A name, an optional email and the conversation.
FAQ
Questions people ask before adding live chat to a React site. For everything else, the general FAQ has the rest.
No. The script tag goes in index.html, outside React, and the chat runs in its own iframe. There is nothing to import and no component to render.
Yes. A single-page app stays on the same HTML page while routes change, so the widget and the conversation stay exactly where they are.
Yes. Add data-mewdesk-open to any button, which needs no JavaScript, or call window.Mewdesk?.open() in an onClick handler. In TypeScript, declare Mewdesk on the Window type once.
Also installing on
Paste the snippet, answer your first visitor. The first 21 days are on us, with no card needed.