NexaDesk
A white-label AI customer support widget that answers questions from a custom knowledge base, knows when to hand off to a human agent, and logs every conversation — deployable on any website with a single script tag.

Overview
What is NexaDesk?
NexaDesk is a complete, deployable AI customer support system built for businesses that want to automate the majority of their support volume without losing the human touch. The bot answers questions by reading the client's own knowledge base — FAQs, policies, product documentation — so every response is accurate and specific to their business.
When a conversation needs a human, NexaDesk escalates intelligently. Rather than immediately handing off the moment someone mentions a person, it attempts to resolve the issue first and only escalates when the user insists or the issue genuinely requires it. On escalation, the support team is notified instantly via Slack or email with the full conversation transcript attached.
Every conversation is logged to a PostgreSQL database on Railway — timestamped, flagged for escalation, and accessible via a protected admin endpoint. The demo includes a live brand customizer where prospects can enter their company name, pick brand colours, and upload a logo to see the widget styled to their brand in real time.
The Problem
Small and mid-size businesses get buried in repetitive support tickets — the same 15 questions asked hundreds of times a week. Hiring more agents is expensive. Generic chatbots feel robotic and give wrong answers. And when a customer genuinely needs help, there's no clean way to get them to a real person without losing the context of the conversation.
The Solution
A widget that reads the company's own documentation to answer the 80% of tickets that are routine — and handles the other 20% by escalating to a human with the full conversation attached. White-label so it looks native to any brand. One script tag so any website can have it live in minutes. Slack and email notifications so no escalation ever gets missed.
What I Learned
Keyword search for knowledge base retrieval breaks the moment users paraphrase anything. Injecting the full knowledge base into every Claude request and letting the model find relevance itself is simpler, more accurate, and the right default until the KB grows large enough to warrant vector search.
Escalation logic is a product decision, not just a technical one. Immediately handing off to a human whenever someone asks for one creates unnecessary load on support teams. A two-tier system — try to resolve first, escalate only when needed — is both better UX and a concrete business value to sell to clients.
The embed script architecture matters more than it seems. Building the backend to serve a dynamic embed.js that self-bootstraps means clients genuinely only need one line of HTML. And migrating from SQLite to PostgreSQL early — with async connection pooling — means the system is ready for multi-client scale from day one.
Next Project
DocAgent