Open source · MIT · self-hosted

Live chat for your site.
Open source, self-hosted.

One embeddable widget, one console, optional AI replies. Clone the repo, point it at your own Postgres, deploy — your visitors' conversations never leave your infrastructure.

ConnectBot

Demo BotDEMO

Scripted replies · no backend

Hi! I'm the demo bot. Ask me about ConnectBot itself — deploying, AI replies, the install.

Demo mode — no backend. The real widget is this same UI wired to your own deployment.

Self-host in 3 steps

Clone, set two env vars, deploy. The README covers a free Vercel + Neon setup end to end.

  1. 01

    Clone the repo

    Grab the source and import it into Vercel — or run it on any Node host.

    git clone https://github.com/alex-zz7/connectbot.git
  2. 02

    Set the env vars

    Any Postgres connection string plus a console password. Tables create themselves on first run.

    DATABASE_URL=postgres://…
    ADMIN_PASSWORD=…
  3. 03

    Paste the snippet

    One line before </body> on your site. The bubble is live; replies land in your /console.

    <script src="https://your-domain/relay.js" async></script>

We run on ConnectBot — the support bubble across sent2x.com is this exact code, self-hosted.

Open the demo console

What the console gives you

One inbox, one switch, one markdown file.

  • Humans-first AI

    You reply while you are online; after a minute without activity, or when you tap your name to go away, the bot takes over. Threads you have replied in stay yours. A message that slipped by while you were online is picked up by the bot a minute later.

  • Knowledge base in the repo

    Write your tutorials and FAQ into public/bot-knowledge.md, deploy it with your code, sync it into the bot with one click. The bot reproduces the matching section in full, in the visitor's language, and hands off anything the file does not cover.

  • The bot has its own face

    Name the bot and upload an avatar (cropped to 128px in the browser, no file storage needed). While it answers, visitors see its name, its avatar and “AI assistant · Online” — nobody mistakes it for a human.

  • Unsend

    Visitors hold their bubble to unsend within two minutes; you hover or long-press to unsend your own or the bot's messages. Both sides see “message unsent” and the text is gone.

  • Formatting survives

    Enter sends, Shift+Enter breaks the line. Numbered steps, bold and links render as lists and bold in the bubble, so what you typed is what the visitor reads.

  • One script tag, one Postgres

    Tables and new columns create themselves at startup, so existing deployments upgrade in place. Conversations live only in your database; the script loads async and styles stay inside a shadow root.

How do I self-host it?

Clone github.com/alex-zz7/connectbot, import it into Vercel (or any Node host), set DATABASE_URL and ADMIN_PASSWORD, deploy. Tables create themselves on first run — no migrations. The README walks through Vercel + Neon end to end.

Is it really free?

Yes — MIT-licensed, no hosted tier, no seat limits, nothing to sign up for. You pay only for your own hosting; a free Vercel + Neon setup runs it fine.

How does the AI reply work?

Optional. Set an OPENAI_API_KEY on your deployment (any OpenAI-style API works) and it is on. Humans first: the bot stays quiet while you are in the console, takes over after a minute of inactivity or when you switch yourself to away, and never speaks again in a thread you have replied in. Visitors see the bot's own name and avatar while it answers. Unset the key and it is a plain human inbox.

Where does my data live?

In your own Postgres. The widget talks only to your deployment — no conversation ever passes through sent2x.com or any third party.

Will it slow my site down?

The script loads asynchronously and never blocks rendering. Styles are scoped to the widget, so it can't leak into your CSS or move your layout.