FreeChat is a chat widget you install with one script tag. It answers visitors from your own knowledge base — instantly, offline, with no API key — captures their details into your CRM, and tells you every question it could not answer.
✓ No build step ✓ No database ✓ No monthly bill
<!-- the entire installation --> <script src="/chatbot.js" data-bot-name="Support" data-color="#4f46e5" data-kb="/knowledge.json"></script>
Money, control, or the truth. FreeChat was built because none of the three was acceptable.
Per-seat, per-conversation, per-month — and your visitors' questions live in someone else's database, on someone else's terms.
A raw model will happily quote a fee you never charged and a deadline that does not exist. One wrong answer costs more than the whole bot saved.
Someone with a question at 11pm does not fill in a form and wait two days. They open the next tab and ask your competitor.
No migration, no training project, no platform to move onto.
One script tag before </body> — on plain HTML, WordPress, Next.js, Shopify, anything. The widget renders in its own shadow root, so your CSS and its CSS can never collide.
<script src="/chatbot.js" data-kb="/knowledge.json"></script>
Answers are plain text with trigger phrases — typos, plurals and word order are forgiven. In a hurry? Record someone talking through your pricing and policies and have the transcript drafted into answers for you.
"q": ["mbbs fees", "cost of mbbs"], "a": "A 6-year MBBS costs ₹20–40 lakh in total."
Every question it could not answer — and every one it answered weakly — arrives in a console, grouped by how often it was asked. Write the missing answer in a form; it is live on the next page load.
// no rebuild. no deploy. open 37 questions answered today, by support
Start offline with no account at all. Add a free AI key later without changing a line of your site.
| Offline FAQ default | AI mode optional | |
|---|---|---|
| Cost | Free forever | Free tier — Gemini or Groq |
| Needs an API key? | No | Yes, a free one — no card |
| Needs a server? | No | Yes, a free one |
| Answers come from | Your knowledge base, matched in the browser | Your knowledge base first, the model only for the rest |
| Can it invent a price? | Never | Not for anything you have written down |
| Works offline / at quota | Always | Falls back to the knowledge base |
Most chatbots hide their failures. This one collects them. Every question that got a fallback — and every question that matched something but did not really answer it — becomes a row your team can fix in a minute.
And nothing that only exists to justify a subscription.
Case, punctuation, plurals and typos are all handled. “counsollor”, “georgai” and “scholarshp” reach the right answer without you listing a single variant.
Below the confidence threshold it says it does not know, instead of guessing. A wrong confident answer costs you a customer; an honest one costs you nothing.
Upload a recording of someone explaining your pricing and policies. It comes back transcribed and drafted into question-and-answer pairs for review.
The bot asks for a name and number at the right moment — once per conversation, never nagging — and POSTs each lead straight into your CRM's web-to-lead form.
Run a separate bot per site or per client, each with its own embed script, knowledge base, branding, AI key, CRM settings and lead inbox.
AI calls always route through a server you control, never the browser. Every proxy rate-limits per IP, so one visitor cannot drain your daily quota.
Name, tagline, logo, colour, welcome message, position — all settings. Ship it white-label to clients; even the credit line is one line you may delete.
Questions, answers and leads are JSON files on your own server. Outgrow that and switch to MySQL with two environment variables and no code change.
Full keyboard support, an aria-live message log, reduced-motion respected, and a full-screen panel on phones. Every current browser, no polyfills.
{
"name": "Ananya Sharma",
"phone": "+91 98xxx xxxxx",
"email": "ananya@example.com",
"description":
"Asked about MBBS fees in Georgia"
}
// X-Api-Key: your-form-key
Turn it on per bot and the widget asks for contact details at the moment they actually matter — after a few messages, or the first time nothing can answer the question properly.
Pick your stack. This is the whole integration, not an excerpt.
<!-- before the closing </body> tag --> <script src="https://yourdomain.com/chatbot.js" data-bot-name="Support" data-color="#4f46e5" data-kb="/knowledge.json"></script>
import FreeChat from '@/components/FreeChat'; export default function RootLayout({ children }) { return ( <body> {children} <FreeChat server="https://bot.yourdomain.com" /> </body> ); } // one file, ~0 kB of bundle, outside the React tree
# Upload the plugin zip, activate, then fill in the form: pricing | price | how much | cost Our plans start at ₹999 a month, with a 14-day free trial. shipping | delivery | track order Orders ship within 24 hours and arrive in 3-5 days. # AI mode is a checkbox. The key lives in WordPress, # and calls go out through the plugin's own REST route.
<!-- deploy server/worker.js (free: 100k req/day), put the key in it, then point the widget at it --> <script src="/chatbot.js" data-provider="proxy" data-api="https://your-worker.workers.dev"></script>
Shopify, Webflow, Wix, Laravel, Django — if it lets you add a <script> tag,
it works. There are no dependencies to be compatible with.
Run it yourself at no cost forever, or have us do the part that actually takes effort.
For teams with a developer and an afternoon.
MIT licensed. No seats, no usage caps.
For teams who want it working next week.
Quoted on the call — no subscription.
For agencies shipping this to clients.
One dashboard, unlimited client bots.
Really free. The whole thing is MIT licensed and runs on your own server — there is no seat count, no message cap and no feature held back behind a plan. We charge only when you ask us to do the work of building and wiring it up for you.
Not for the default mode — it answers from your knowledge base in the browser with no key and no server. AI mode is optional and runs on a free Gemini or Groq key; neither asks for a card. Because known questions never reach the model, a busy site stays inside the free quota.
Not for anything you have written down — those answers are your text, returned verbatim. In AI mode the model only sees questions your knowledge base could not match, and those questions are still recorded for you, so the gap becomes an answer you control.
Whoever answers your customers today. The console turns maintenance into a queue of real visitor questions with a form next to each one — no JSON, no deploy, no developer. Most teams spend ten minutes a week on it.
Onto your server and nowhere else. There is no FreeChat cloud. Questions, answers and leads are files under your install (or your own MySQL). The widget reports only the question text and the page it was asked on — and nothing at all if you leave reporting switched off.
It cannot. The widget renders inside a shadow root, so your stylesheet cannot reach into it and its styles cannot leak out. Colour, name, logo, position and copy are all settings.
Yes. The widget has no language of its own — every visible string is yours, so a knowledge base in Hindi, Arabic or Spanish behaves exactly like an English one. In AI mode the model replies in whatever language it is asked in.
The widget itself, about five minutes. A knowledge base good enough for real visitors takes an afternoon — or a ten-minute recording, if you would rather talk than type. After that it improves itself, because the queue tells you exactly which answers are missing.
We take your actual website, put its content into the bot while you watch, and you ask it the questions your customers ask. If it is not convincing, you have lost half an hour and gained a knowledge base.
Prefer to ask first? The bot in the corner of this page runs on FreeChat and answers questions about FreeChat —
Thanks! We will email you within one working day with a couple of times that suit.
In the meantime, the bot in the corner knows most of what we would cover.
Install it free this afternoon, or let us build it with you next week.