SaaS Live · 2025 Own product
LinguaBot.
I built LinguaBot for client sites that needed support in Bangla and Hindi but couldn't afford an enterprise chat platform. Embeddable, auto-detects EN · BN · HI · UR, one <script> tag. Free tier forever.
The problem.
The South Asian small-business web has a multilingual gap. Most chat widgets ship in English only, or require manual language switching. Customers in Dhaka, Karachi, or Mumbai land on an English-only chat and bounce. The off-the-shelf options (Intercom, Drift) are fifty times the price a 3-person consultancy can stomach.
What I built.
- Auto language detect. The widget reads the visitor's first message and switches UI + responses to EN / BN / HI / UR on the fly.
- One script tag. Drop in
<script src="https://linguabot.app/w/xyz.js">. No npm, no build step, no React peer dependency. - Free tier forever. Up to 100 conversations / month at zero cost. Paid plan kicks in only when you've already validated the value.
- Self-hostable. Open core. You can run the whole stack on your own Fly machine and pay $5/mo instead of $50.
- FastAPI + React dashboard. For tenant config, prompt templates, language fallbacks, and analytics.
How I shipped it.
- Widget first. Vanilla JS + Shadow DOM, 12kb gzipped. Designed to never break a host site's CSS.
- Dashboard last. Tenants got CLI config first — only built the React admin once five paying users asked for it.
- Multi-tenant from day one. Per-tenant API keys, prompt overrides, language mix. PostgreSQL row-level security.
- Stripe + webhook reconciliation. One job, runs nightly, never gets confused about a plan downgrade mid-month.
- Fly.io deploy. $5/mo to start. Scales horizontally without me having to think about Kubernetes.
// One script tag. Auto-detects language. Free tier forever. <script src="https://linguabot.app/w/xyz123.js" data-position="bottom-right" data-lang="auto" ></script>
async def detect_lang(text: str) -> Lang: # Bengali script range if any('ঀ' <= c <= '' for c in text): return Lang.BN # Devanagari (Hindi) if any('ऀ' <= c <= 'ॿ' for c in text): return Lang.HI # Arabic / Urdu if any('' <= c <= 'ۿ' for c in text): return Lang.UR return Lang.EN # default fallback
<12kb
Gzipped widget — smaller than most company logos.
4
Languages auto-detected: EN · BN · HI · UR.
Outcomes.
4
Languages
<12kb
Bundle size
$0
Free tier · forever
100%
Self-hostable
"AI assistant for your website that speaks English, Bangla, Hindi & Urdu."
— the actual landing-page promise
Like what you read? I can ship this for you.
Send a one-line scope and I'll quote within 24h. Three engagement shapes — fixed-price MVP, embeddable widget, or maintenance retainer.