Lightweight chat widget
The lightest chat widget we've measured
GhostChat downloads 18.9 KB in total, including opening the chat. In the same test LiveChat came to 43.5 KB, Crisp to 267 KB, Tawk.to to 462 KB and Intercom to 1,104 KB.
Free for one site. Zero cookies.
What a visitor downloads
Page load plus opening the chat · August 2026
Lighthouse
The score won't tell widgets apart. Blocking time will.
Our test page scored 100 with no widget. Every widget we could measure scored 99, ours included. The difference shows up in blocking time and main-thread work.
Lighthouse also never opens the chat, so it misses what a widget downloads on that click: 833 KB more for Intercom. Crisp doesn't load while Lighthouse is running, so it can't be scored at all.
| Widget | Score | Blocking time | Main thread |
|---|---|---|---|
| No widget | 100 | 0 ms | 101 ms |
| GhostChat | 99 | 0 ms | 124 ms |
| LiveChat | 99 | 0 ms | 243 ms |
| Intercom | 99 | 82 ms | 348 ms |
| Tawk.to | 99 | 25 ms | 476 ms |
What fits in 18.9 KB
A chat widget doesn't need a framework. Ours is plain TypeScript compiled to one small script, so the weight goes to features instead.
In the widget
- Real-time messages over a live connection
- File and image uploads
- Typing indicators
- Email capture when you're away
- Dark mode and your own colors
- Business hours
- Quick replies
Left out
- React, Vue or any framework runtime
- jQuery and old-browser polyfills
- Third-party analytics
- Fingerprinting libraries
- Cookies
Check any widget yourself
You don't have to take our numbers. This takes two minutes in Chrome.
- 1
Open DevTools, go to the Network tab and reload the page
Filter by the widget's domain so you only see its files.
- 2
Open the chat window
Most widgets download the rest of themselves on this click. Lighthouse never does it.
- 3
Add up the Transferred column
That is what every visitor pays for your widget. Or run our website speed test and we'll do it for you.
Questions
Does widget size affect SEO?
Indirectly. Google uses Core Web Vitals as a ranking signal, and heavy widgets add blocking time and main-thread work. A widget that loads after your page and stays small leaves those numbers alone.
Does lightweight mean fewer features?
No. Real-time messages, file uploads, email capture and business hours are all in the 18.9 KB, and Gmail threading and Bot Agent webhooks run on our servers, so they cost your page nothing.
Will it work with React or Next.js?
Yes. It is one deferred script tag that loads after your app and never touches your framework code. No npm package, no SSR conflicts.
Will it load on a slow mobile connection?
That is the point of being small. On a slow connection every kilobyte is waiting time, and 18.9 KB is a fraction of what the widgets we measured download.
Add live chat in 30 seconds.
One script tag. No configuration. No credit card required.