Back to Home

AI Sommelier & Multi-Tenant Chatbot Platform

Next.jsSupabaseTypeScriptVercel AI SDKpgvectorDocker

AI Sommelier & Multi-Tenant Chatbot Platform

A full-stack AI chatbot platform built around wine education and discovery. Organizations embed a lightweight chat widget on their site that connects visitors to AI-powered wine assistants, each backed by curated knowledge bases of wines, grapes, regions, and wineries.

Wine Knowledge & AI

  • Pluggable knowledge architecture connecting chatbots to wine databases, grape/region/winery APIs, and structured tasting data via vector embeddings
  • Domain-specific AI tools for grape lookups, region exploration, wine style matching, and wine research, giving the AI structured knowledge beyond a generic LLM
  • Two-layer prompt governance: platform-locked sommelier personas with org-configurable addendums for brand voice and house style
  • Streaming responses with tool use, prompt caching, and message-aware context windows

Multi-Tenancy & Widget

  • Embeddable JavaScript chat widget with API-key auth, CORS enforcement, and multilingual support (English, French, German)
  • Multi-tenant organization model: wine retailers, restaurants, distributors, and educators each get scoped chatbots, knowledge bases, member management, and usage dashboards
  • Subscription + overage billing with token/request limits, real-time usage visibility, and automated enforcement

Admin & Operations

  • Conversation analytics with per-chat cost tracking, suggestion click-through rates, and audit logging
  • User management with role impersonation
  • Custom SSO via Access Broker portal, cookie-based sessions, and API-key auth for widget endpoints

Architecture

  • Part of a three-app ecosystem: the chatbot platform is supported by a structured wine knowledge API and an automated scraping pipeline that keeps wine data current, all sharing a common database
  • Built as a pnpm monorepo with Next.js 15, Supabase (PostgreSQL + pgvector), Drizzle ORM, RabbitMQ workers, and Docker Compose
  • Tested with Vitest, Testing Library, and Playwright E2E against local Supabase