Most AI chatbots cost $200+/month just to answer basic questions. For a small team or a solo founder, that’s insane.
I spent the last few weeks building Klemly to fix this. It’s an AI support widget you can add to any website in minutes with a single line of JavaScript. You train it on your URLs, PDFs, or pasted text, and it answers strictly from your content—no hallucinations.
It auto-detects visitor languages (supports 13), captures leads, and crucially, flags frustrated customers so it can escalate to a human instead of guessing and angering the user.
We are live with a free tier (100 chats/month, no credit card required), and we’re launching on Product Hunt soon. But today, I wanted to pull back the curtain on how this got built, how I’m pricing it, and the fears keeping me up at night.
🛠️ How I avoided framework bloat
I optimized for speed, simplicity, and keeping server costs at basically zero. I skipped the modern "default" stack of React/Next.js + Supabase + Pinecone and went back to basics:
• Backend: Plain old express. Fast, boring, reliable.
• Database: better-sqlite3. I didn't need a distributed Postgres instance for this.
• Data Ingestion: cheerio for scraping URLs and pdf-parse for extracting text from PDFs. Clean, simple, and does exactly one thing well.
• AI & Payments: openai for the LLM/embeddings and stripe for billing.
• Frontend: Zero front-end frameworks. The dashboard and the widget itself are built with vanilla HTML, CSS, and JS. The widget is injected as a lightweight script so it won't clash with the CSS of whatever site it's embedded on, and it loads instantly.
Building this way felt incredibly refreshing. No build steps, no hydration mismatches, no fighting with state management. Just a server talking to a database.
💰 The Pricing Decisions
Pricing AI is genuinely hard because every chat costs me money in API calls. I looked at competitors charging $200/mo, but I want this to be the default for indie hackers and small teams.
Here is my logic:
Free Tier (100 chats/mo): I’m taking a calculated risk on API costs here. I’m betting that the free tier will drive word-of-mouth, and the usage limits will keep my OpenAI bills manageable. If a bot scrapes the widget, I have rate limiting in place.
Paid Tiers: I’m keeping it simple. A flat monthly fee based on volume, completely undercutting the enterprise tools.
I want to build a sustainable business, not a race-to-the-bottom commodity. I’m banking on the "frustration detection" and "human handoff" features being the hooks that make people upgrade, rather than just charging a premium for basic Q&A.
😨 What I Am Scared Of
Distribution: I can build the product, but can I get people to care? The AI wrapper space is incredibly noisy. My biggest fear isn't a competitor building a better widget; it's that nobody finds Klemly in the first place. I'm stepping way out of my comfort zone to do cold outreach and SEO.
Rogue API Costs: If a site gets a massive traffic spike, or a malicious user spams the widget, my OpenAI bill could spike overnight. I’ve implemented rate limiting and abuse detection, but there's always a new edge case.
The "Hallucination" Edge Case: I’ve constrained the AI to only answer from provided documents. But LLMs are slippery. If someone gets it to say something completely off-brand to their customer, it damages their reputation—and by extension, Klemly's.
The Founder Reality
Building this was the fun part. Now the real work begins: talking to users, tweaking the RAG thresholds, and trying to get those first 10 paying customers.
If you have a website, I’d love for you to install it and tell me what breaks. And if you’re a solo founder dealing with support overload, I want to talk to you.
You can check it out at klemly.com.
What’s your biggest fear when launching a new product? Let's commiserate in the comments. 👇
I'm curious what convinced you that reliable escalation to a human is a stronger long-term differentiator than simply making the AI answer more questions.
Was there something you observed that suggested trust breaks down not when AI knows less, but when it doesn't know when to stop?