The Challenge
Businesses need to answer customer questions 24/7, but hiring round-the-clock support staff isn't practical for most. Off-the-shelf chatbots give generic, unhelpful answers because they don't know anything about the specific business.
The goal was to build a platform where a business owner could feed in their website content, documents, and FAQs — and get an AI agent that actually knows their product. When the AI can't help, it should hand off to a real person without the customer noticing a gap.
The platform also had to work across languages automatically, since many of the target businesses serve international customers. And the whole thing needed to install on any website with a single line of code — no developer required.
Our Approach
We built TideReply as a multi-tenant platform where each business gets its own isolated AI agent, trained on their content.
RAG-powered knowledge base — business owners add knowledge by uploading documents (PDF, DOCX, Excel, CSV) or pointing the crawler at their website. Content is chunked, embedded, and stored as vectors. When a visitor asks a question, we retrieve the most relevant chunks and feed them to the LLM as context, ensuring answers are grounded in real business content rather than hallucinated.
Confidence-aware responses — every answer is scored for relevance. High-confidence answers are delivered directly. Low-confidence answers are flagged with uncertainty. Below a threshold, the bot gracefully admits it doesn't know and offers to connect the visitor with a human — avoiding the "confident but wrong" problem that plagues most chatbots.
Live agent takeover — when the AI escalates or a human agent decides to step in, the conversation switches seamlessly to live chat. Agents see the full conversation history, get AI-suggested responses, and can hand back to the bot at any time. Presence detection ensures escalation behavior adapts based on whether an agent is actually available.
Multi-language by default — the system detects the visitor's language and responds accordingly. The same knowledge base works across languages without duplicate content, thanks to cross-lingual embeddings.
Embeddable widget — a lightweight vanilla JS snippet (under 3KB) that any site owner can paste into their HTML. The widget loads in an isolated iframe to avoid CSS conflicts, adapts to the business's brand colors, and works on mobile out of the box. Also available as a Google Tag Manager template and Shopify app for one-click installation.
Real-time everything — messages, typing indicators, agent presence, and mode switches all happen over WebSocket connections. No polling, no delays.
Tech Stack
- Next.js (App Router) with TypeScript
- Supabase (PostgreSQL + pgvector for vector search)
- Anthropic Claude for conversational AI
- OpenAI embeddings for semantic retrieval
- Supabase Realtime for live messaging
- Tailwind CSS + shadcn/ui for the admin dashboard
- Vercel for hosting and edge delivery
- Resend for transactional email notifications
The Result
TideReply shipped as a fully functional platform, now handling live customer conversations:
- Answers grounded in real content — businesses see their chatbot giving accurate, source-backed answers instead of generic AI responses, dramatically reducing unhelpful interactions.
- Seamless AI-to-human handoff — visitors experience a smooth transition from bot to live agent with no page reloads, no lost context, and no awkward gaps.
- Multi-channel distribution — one-line embed script, Google Tag Manager template, and Shopify app mean businesses can install in minutes regardless of their tech stack.
- Multilingual out of the box — businesses serving international markets get automatic language detection and native-language responses from a single knowledge base.
- Real-time admin dashboard — agents monitor all conversations live, see AI confidence scores, and can jump in at any point with full conversation history and AI-suggested replies.
