NexAI Advisors · AI product

MaxChat and Voice Agent Platform

The multi-tenant platform behind the chat launcher on nexaiadvisors.com: an embeddable chat widget, a per-client knowledge base with vector search, voice agents on Vapi, MCP tool federation, human escalation and a public help center, run from one admin dashboard.

Built with Next.js, React, TypeScript, Express, PostgreSQL, Prisma, Qdrant, Anthropic Claude, Vapi, Google Gemini Live, Model Context Protocol, Server-Sent Events, Turborepo, Railway, Vercel.

In numbersfrom the project
Figure

5 apps

Chat backend, embeddable widget, voice agent API, admin dashboard and public help center in one monorepo

Figure

1,334 tests

102 unit and integration test suites verifying multi-tenant isolation, commerce actions, and escalation flows

Figure

Per-tenant keys

Each client's Claude usage is billed to its own Anthropic key

Screensscreenshots, not mockups
Max: Chat and Voice Agent Platform, desktop screenshot 1
Max: Chat and Voice Agent Platform, desktop screenshot 2
Max: Chat and Voice Agent Platform, phone screenshot 1
The storyproblem, build, outcome

What it is

Max is a Turborepo monorepo of five apps: an Express chat backend, an embeddable Next.js chat widget installed with one script tag, a voice agent API built on Vapi, a Next.js admin dashboard, and a public help center that renders each client's published knowledge-base articles with vector search and a keyword fallback. The backend runs on Railway with PostgreSQL through Prisma and Qdrant for embeddings, and the widget is served from Vercel. Chat answers come from Claude over the Anthropic API, and each tenant is billed to its own key. Responses stream over server-sent events. Knowledge files are ingested, chunked and embedded per client, with a critical-facts layer the retriever always includes. Beyond the web widget the same engine serves an email channel and real-time voice and video sessions through Gemini Live. Agents can hand a conversation to a human with an escalation card, keep a customer profile, book through Google Calendar, and call tools on a client's own MCP servers, with server tokens encrypted at rest.

The problem

A one-person consultancy selling chat and phone agents needs to deploy one for each client without a fresh codebase every time, keep every client's data and API spend separate, and let the agent do things - book an appointment, look up an order, hand off to a person - rather than only answer questions.

What I built

One backend with a client record at the root of every table: conversations, sessions, knowledge files, document chunks, voice assistants, workflow templates, escalations, procedures and campaigns are all scoped to a tenant, and the LLM bill follows the same line. Workflow-based and prompt-based assistants share a unified engine, so a client can start from a template and grow into custom flows. Tool use goes through the Model Context Protocol, so a client's existing MCP servers become the agent's tools without bespoke integration code. The widget is white-labelled per client and the help center gives each client an indexable public site from the same knowledge base.

What happened

Live. The widget loads across nexaiadvisors.com talking to the Railway backend, and the Resolve Phase 2 multi-channel support, commerce, and outcomes engine is verified by 102 test suites (1,334 passing tests) across 8 workspace packages.

What it changed

  • One deployment per client instead of one codebase per client
  • Each client's data and LLM spend stay separate by construction
  • The agent can act - book, look up, hand off - not just answer

Who it fits

  • A spa, store or office that wants the phone and the chat answered and appointments booked
  • A support team that wants a public help center and a widget fed from the same articles
  • A business with existing tools exposed over MCP that the agent should be able to call
Under the hoodthe decisions a senior engineer would ask about
  • Multi-tenant RAG: per-client ingestion, chunking and Qdrant embeddings with a critical-facts layer
  • MCP tool federation with client server tokens encrypted at rest
  • Streaming chat over server-sent events with workflow-based and prompt-based assistants on one engine
  • Voice agents on Vapi plus real-time voice and video through Gemini Live
  • Human escalation with handoff cards, customer profiles and Google Calendar booking

Want something like this built?

Bring the job that eats your week. Step 1 is a free 15-minute fit call. Step 2 is the AI Staff Assessment, $500, a written assessment you keep. Step 3 is your first hire at a published price, or you take the assessment and stop.

Book a 15-minute fit call
or email david@nexaiadvisors.com with a link or a short note