Customer Support Platform
A multi-tenant customer support platform integrating knowledge-search chat with inbox and ticket management.
Challenge
Traditional customer support required enormous effort for inquiry handling, with knowledge siloed to individuals and information fragmented across channels. The design needed multi-tenant data isolation per workspace while achieving RAG-based automated responses.
Solution
Integrated knowledge-search chat and ticket management using Next.js 14 + Supabase (pgvector). Implemented model switching, tenant isolation through RLS, an inbox, CRM, and dashboard.
Result
Built a support platform where teams can handle inquiries, search knowledge, manage customer data, and review reports in one place.
Team
1 member, 2 months
Design, implementation, infrastructure, operations
Role
Handled UI design, knowledge search, inbox, permissions, and infrastructure.
Led frontend (Next.js), backend (Supabase Edge Functions), and infrastructure (Terraform/GCP) end-to-end.
Tech Stack
Key Features
Knowledge-search chat: ingest URLs, PDFs, and text, then retrieve relevant information during support conversations
Multi-LLM support: Switch between OpenAI / Gemini / Claude / Groq / xAI / DeepSeek through a unified interface
Inbox: Zendesk-like ticket management. Multi-channel support for chat, email, and API
Multi-tenancy: Physical data isolation via RLS, membership and role management
Dashboard: Graph visualization, filtering, and reporting for various data
Platform management: Cross-workspace management screen for super users
Technical Highlights
RAG Pipeline Design
Built an end-to-end pipeline: document ingestion → chunk splitting → vectorization → similarity search → response generation. Implemented duplicate detection via content_hash and cross-tenant leakage prevention via workspace_id filtering.
Multi-tenant × RLS Security
All core tables have workspace_id with Supabase RLS physically isolating data between tenants. Achieved two-layer protection with Middleware auth checks and client-side role checks.
Async Processing via Edge Functions
Moved heavy processing into Supabase Edge Functions so the web app stays responsive.