Live Chat
Optional Tawk.to live chat widget for the web app
Overview
EasyStarter can load a Tawk.to chat bubble on the web app. The widget is opt-in: when the IDs are blank, no Tawk script is requested.
The free Tawk.to plan has no agent, conversation, or history caps. The widget shows Powered by tawk.to until you pay for their whitelabel add-on.
Environment Variables
These are public VITE_ vars. They are embedded in the client bundle. Do not put them in apps/server/.dev.vars.
| Variable | Purpose |
|---|---|
VITE_TAWK_PROPERTY_ID | Tawk property ID from the embed snippet |
VITE_TAWK_WIDGET_ID | Tawk widget ID from the embed snippet |
Set both in:
apps/web/.env.developmentfor local devapps/web/.env.productionfor local production builds (gitignored)apps/web/wrangler.jsoncvarsfor Cloudflare deploys and GitHub-connected builds
Both values must be present. If either is empty, the widget stays disabled.
VITE_* values are baked into the client bundle at build time. Cloudflare dashboard Worker variables only affect runtime unless they are also configured as build variables. If wrangler.jsonc already has the IDs, a GitHub Cloudflare Build does not need the dashboard.
Get the IDs
- Create a free account at tawk.to.
- Create a property for your site.
- Open Administration → Channels → Chat Widget and copy the embed snippet.
- The script URL looks like
https://embed.tawk.to/{PROPERTY_ID}/{WIDGET_ID}.
VITE_TAWK_PROPERTY_ID=64abc123def4567890abcdef
VITE_TAWK_WIDGET_ID=1hxxxxxxxBehavior
- Landing, docs, blog, legal, and dashboard pages show the bubble.
- Auth pages (
/auth/sign-in,/auth/sign-up, and locale-prefixed equivalents) hide it so it does not cover forms. - Signed-in users are sent to Tawk as
nameandemailso agents can see who is chatting. - Sign-out resets the widget so the next visitor is not tagged as the previous user.
- Native apps are not wired. This is a web widget only.
Verification
- Leave both IDs blank, run
pnpm dev:web, and confirm DevTools → Network has noembed.tawk.torequests. - Fill both IDs, restart the web app, and confirm the bubble on the landing page.
- Open
/auth/sign-inand confirm the bubble is hidden. - Sign in, open the dashboard, and confirm the Tawk inbox shows the user email.