A chat widget your site won't even notice
Most chat widgets add 120-200KB to your page. GhostChat is the lightest on the market. Your Lighthouse score stays perfect, your visitors get fast support, and you don't have to think about it.
Size Comparison
See how we stack up against the competition (gzipped size).
Tested with 4G Mobile Throttling
Built at the edge, close to your visitors
Your chat sessions run on edge servers worldwide — milliseconds away from whoever is visiting your site. Messages feel instant, even on slow connections.
What's actually inside ~10KB?
We get this question constantly. The short answer: a chat widget doesn't need 200KB of JavaScript. It needs the right architecture.
✓What's included
- ✓Real-time WebSocket messaging
- ✓File and image uploads
- ✓Typing indicators
- ✓Email capture and lead collection
- ✓Push notifications
- ✓Dark mode auto-detection
- ✓Mobile-optimized layout
- ✓Custom branding (Pro+)
- ✓Quick links / canned responses
✗What's NOT included
- ✗React, Vue, or any framework runtime
- ✗jQuery or polyfills for ancient browsers
- ✗Third-party analytics (Mixpanel, Segment, etc.)
- ✗Fingerprinting libraries
- ✗Cookie management code (zero cookies)
- ✗UI component libraries
- ✗Bundled icon sets you don't use
- ✗Translation runtime (English-only widget)
That's the entire difference. Heavy widgets bundle "just in case" code. We bundle "exactly what's needed."
Performance on slow connections
Most chat widgets are tested on fiber. Your visitors aren't. They're on 3G in a parking lot, on congested hotel Wi-Fi, on a mid-range Android in a rural area. A widget that takes 15 seconds to load on 3G doesn't exist for those visitors — they've already left.
| Widget | Size (gzipped) | Load on 3G |
|---|---|---|
| Tawk.to | ~250 KB | 20s+ |
| Crisp | ~155 KB | ~6s |
| LiveChat | ~120 KB | ~4s |
| GhostChat | ~10 KB | < 1s |
Tested via Chrome DevTools network throttling at "Slow 3G" (1.6 Mbps down, 750 Kbps up, 300ms RTT)
3G mobile networks
Still common in emerging markets, rural areas, and congested urban networks. A 200KB widget here means visitors leave before the widget even renders.
Mid-range Android devices
Heavy framework parsing eats CPU on older Snapdragons. The widget UI stutters. We tested on a 2019 budget phone — GhostChat renders in <100ms, others took 1-3 seconds.
Congested public Wi-Fi
Hotels, conferences, coffee shops. Bandwidth varies wildly, timeouts are common. A widget that gracefully handles 5-15% packet loss is genuinely rare.
The hidden cost of a heavy chat widget
A 250KB chat widget doesn't just slow down the page — it taxes everything downstream. Here's the actual cost, broken down.
Lighthouse score impact
A heavy chat widget typically drops mobile Lighthouse Performance scores by 15-30 points. Largest Contentful Paint slips because the main thread is busy parsing the widget script. Total Blocking Time balloons. Cumulative Layout Shift suffers when the widget bubble pops in late. Google's Core Web Vitals are now a confirmed ranking signal — so a heavy widget directly hurts your search rankings.
Conversion impact
Google's own research shows mobile conversion drops 12% for every 1 second of added load time. A 200KB widget adds 1-3 seconds on a 3G connection. Compounded across your traffic, that's a real revenue line item. We've had customers report bounce rate improvements of 5-10% after switching from heavy widgets.
Battery and data cost (often missed)
Heavy JavaScript parsing burns mobile battery and consumes data. For users in countries with metered data plans, a 200KB widget on every page visit is a real cost — and most users can't articulate why they bounced, they just left. Lightweight is invisible accessibility.
Equity exclusion
A chat widget designed only for fast Wi-Fi and new phones is a chat widget that doesn't exist for everyone else. Your visitors in emerging markets, on older devices, on metered plans — they need support too. Lightweight architecture is the price of admission for global accessibility.
How to choose a lightweight chat widget
Four concrete criteria. If a widget fails any of these, it's not actually lightweight — it's marketing.
Gzipped size under 20KB
Check the actual transferred size in Chrome DevTools Network tab (not the raw file size). Anything over 50KB is heavy by 2026 standards. Over 100KB is a problem on mobile networks.
Zero framework dependencies
Open the script source. If it ships React, jQuery, or any framework runtime, it's carrying weight you don't need. A purpose-built widget should be vanilla JS.
Edge delivery
Messages should route through global edge infrastructure, not a single US-East data center. Test by checking message round-trip time from outside the US.
Asynchronous loading
The widget script must load with async or defer — never block the main thread during page paint. Run Lighthouse before and after install to verify.
GhostChat passes all four by design. Most mainstream widgets fail at least two.
Frequently Asked Questions
How does GhostChat stay at ~10KB when competitors are 100-200KB?
GhostChat is written in vanilla TypeScript with zero dependencies — no React, no jQuery, no bundled polyfills. It compiles to a single IIFE that does exactly what's needed and nothing more.
Will a chat widget affect my Lighthouse score?
Most do. Crisp adds ~311ms of CPU time, Tawk.to adds ~1,100ms — enough to fail Core Web Vitals. GhostChat adds 0-5ms and has no impact on LCP, TBT, or CLS.
Does widget size affect SEO?
Yes. Google uses Core Web Vitals as a ranking signal. Heavy chat widgets increase Total Blocking Time and hurt your Lighthouse performance score, which can lower your search rankings.
How does ~10KB compare to other chat widgets?
Tawk.to is ~250KB, Crisp is ~155KB, and most enterprise widgets are 200–300KB+. GhostChat at ~10KB is 15–30x smaller than the next lightest mainstream competitor.
Does lightweight mean fewer features?
No. GhostChat includes real-time messaging, file uploads, typing indicators, email capture, push notifications, dark mode, business hours, multi-agent (Business plan), Gmail threading, and Bot Agent webhooks — all in ~10KB gzipped. Size and features aren't a trade-off when the architecture is right.
Will the widget load on 3G or congested mobile networks?
Yes — that's the point of being ~10KB. On a typical 3G connection (1.6 Mbps), Tawk.to takes 20+ seconds to load, Crisp takes ~6s. GhostChat loads in under 1 second on the same connection. Most heavy widgets fail entirely on congested networks; GhostChat works on every connection we've tested.
How does the edge architecture work?
GhostChat runs on Cloudflare's global edge network with data centers in 300+ regions. Your chat session is served from the data center physically closest to each visitor. Result: 10-30ms message delivery worldwide, regardless of where your central servers are.
Will it work with React, Next.js, or other framework apps?
Yes. The widget is a single async script tag — it loads after your app and never touches your framework code. There's no npm package to install, no React component to import, no SSR conflicts. It works the same way in Next.js (App Router or Pages), React, Vue, vanilla HTML, WordPress, Shopify, or any HTML page.
Stop losing visitors to a slow widget
Free for 1 site. Takes 30 seconds to install. No credit card required.