YES

Replaceable in one session with an AI coding agent.

A live chat widget that puts visitor conversations into a team chat channel, so support is answered from the same place the team already talks rather than in a separate inbox.

Promptfree, for everyone, and the only version there is
Build me a chat widget that answers into my team's chat, replacing Chatlio.

The idea is that support lives where the team already is. That means a relay: a visitor types on your site, the message appears in a channel, somebody replies there, and it goes back. Everything below serves that round trip.

STACK
- Node 20+ with Fastify
- SQLite through better-sqlite3, WAL mode
- One embeddable widget under 15KB gzipped, from your own domain
- One chat platform adapter to begin with
- Caddy in front

THE DATA MODEL
- conversations: id, visitor_id, channel_ref, thread_ref, status, page_url, referrer, started_at, last_message_at, closed_at
- messages: id, conversation_id, direction, author_name, body, external_id, created_at
- visitors: id, visitor_hash, name, email, traits_json, first_seen_at, last_seen_at
- page_views: id, visitor_id, path, title, at — the trail, which is the context that makes a reply useful
- The thread reference is how a reply in the channel finds its way back. Store it on the first message and never lose it

THE ROUND TRIP
- A new conversation opens a thread in the channel with the visitor's page, referrer and recent trail in the first message
- Every visitor message is posted into that thread
- Every reply in the thread that is not from the bot goes back to the visitor. Filter on the author, and never echo your own messages, which is the loop this design invites
- Idempotency by the platform's message id, so a redelivered event does not double-post
- The platform's rate limits respected with backoff

THE WIDGET
- One script, one init call, optionally with a signed identity token from your product so a known user is not asked who they are
- Delivery by polling a small endpoint with a backoff — faster while a conversation is active, slower when idle. Sockets are the obvious answer and the wrong first one
- Shadow DOM so your page's styles and the widget's cannot reach each other; keyboard operable, focus trapped, Escape closes, usable at 320px
- **Offline honesty**: when nobody is available it says so and takes an email address rather than pretending somebody is there. A widget that looks instant at midnight is the thing that annoys people most
- History for an identified visitor, so nobody starts again on every page

WHAT THE AGENT SEES
- The page they are on, the referrer, the pages before it, the device and the country. That context is most of what makes a fast reply possible
- Canned replies by shortcut, expanded in the channel
- Commands in the thread to close, assign or tag, so nobody leaves the chat window

OPERATIONS
- .env: DATABASE_PATH, BASE_URL, PLATFORM_TOKEN, SIGNING_SECRET, WIDGET_JWT_SECRET, HASH_SALT, ALLOWED_ORIGINS
- Migrations on boot, each once; events received by webhook with signature verification
- Nightly backup off the machine, restore script
- Health endpoint that posts and deletes a message in a test channel

WHAT MATTERS MOST
The thread reference and the echo filter. Build the round trip first and talk to yourself through it for a day — a relay that loops, or that loses which thread belongs to which visitor, is unusable immediately.

What you lose

  • An integration with the chat platform that keeps working as its API changes
  • A widget maintained against browser changes, loaded fast on every page
  • Visitor context — the page, the referrer, the history — assembled without you writing it
  • Hosting for the relay, so a conversation does not stop when your server restarts

If you would rather not build

  • A webhook into a channel and a polling endpoint, which is the whole idea in two hundred lines

The escape hatch

open source · no votes, no paid placement

Chatwoot

$0

Open-source support inbox with live chat and channel integrations.

chatwoot/chatwootfree · open source

Papercups

$0

Open-source live chat that relays into team chat.

papercups-io/papercupsfree · open source

Why this verdict

our own opinion · changed only by a person

80/100

Verdict yes at 80: a widget, a relay and a thread reference. The adapter is the ongoing cost, and the echo filter is the bug everybody writes once.

History

tracked since 14 Aug 2026 · nothing is ever overwritten

Interest · last 30 dayspeak 1/day
views0117 Jul22 Jul27 Jul1 Aug6 Aug11 Aug15 Aug
views prompt copies none yet votes none yet

Questions about Chatlio

answered from the record above

Is Chatlio free?

No — the plan we track is $29 a month. Standard at $29/month billed monthly for a small team, priced per agent above that.

Can you replace Chatlio by building your own?

YES. Replaceable in one session with an AI coding agent. Replacement score 80 out of 100, build time one session. Read what you lose before you decide.

How much does Chatlio cost?

$29 a month on Standard — $348 a year. Recorded 14 Aug 2026.

What do you lose by replacing Chatlio?

An integration with the chat platform that keeps working as its API changes; A widget maintained against browser changes, loaded fast on every page; Visitor context — the page, the referrer, the history — assembled without you writing it; Hosting for the relay, so a conversation does not stop when your server restarts. If any of those carry weight for you, keep paying.

Is there an open-source alternative to Chatlio?

Yes: Chatwoot, Papercups. The prompt on this page is for when you want it your way instead.

Related entries

same category first, most replaced first

All 29 in Customer support

Not sending yet

Every week, something stops being worth paying for.

New verdicts, prices that moved, entries added. One email a week. Unsubscribe in one click. Nothing is being sent yet — your address is kept here, and the first issue is the first thing it is used for.

free forever · no tracking pixel · stored here, never passed to anyone

Esc