explaingit

mckaywrigley/chatbot-ui

33,248TypeScriptAudience · developerComplexity · 3/5StaleLicenseSetup · moderate

TLDR

Open-source web chat interface for AI models that you self-host, keeping your conversations private and letting you use any model, OpenAI, local, or others.

Mindmap

mindmap
  root((repo))
    What it does
      Chat interface
      Multi-model support
      Self-hosted option
      Data privacy
    Tech stack
      TypeScript
      React
      Next.js
      Supabase
    Use cases
      Private team chat
      Local model access
      Avoid subscriptions
      Custom deployments
    Deployment
      Vercel hosting
      Docker locally
      Self-host option
    Features
      Conversation threads
      Model switching
      User accounts
      API key management

Things people build with this

USE CASE 1

Deploy a private ChatGPT-style chat app for your team without vendor lock-in.

USE CASE 2

Connect a polished chat interface to locally running AI models via Ollama.

USE CASE 3

Build a multi-model chat app using your own OpenAI or Azure API keys while keeping conversations in your database.

USE CASE 4

Avoid monthly subscriptions by self-hosting a chat interface you already have API access for.

Tech stack

TypeScriptReactNext.jsSupabasePostgresDockerVercel

Getting it running

Difficulty · moderate Time to first run · 30min

Requires Supabase account setup and environment variables for API keys; Docker simplifies deployment but isn't mandatory for local dev.

Open-source license allowing free use, modification, and distribution for any purpose including commercial use.

In plain English

Chatbot UI is an open-source web interface for chatting with AI language models. It solves the problem of vendor lock-in and privacy: instead of being tied to a single provider's chat interface, you can run this app yourself and connect it to any AI model you choose, including OpenAI's GPT models, Azure OpenAI, or locally running models via Ollama (a tool for running AI models on your own computer). The interface looks and works much like popular AI chat apps: you have conversations, can manage multiple chat threads, and can switch between models. Because you self-host it, your conversations stay in your own database rather than a third-party service's servers. The way it works is that you deploy the frontend (a Next.js web app) and connect it to Supabase, which is an open-source Postgres database service, for storing conversations and user accounts. You provide your own API keys for whichever AI models you want to use. The application routes your messages to the appropriate AI provider and displays the responses in the chat interface. You would use Chatbot UI when you want a polished, multi-model chat interface but want control over your data, want to use locally running models, or want to avoid paying for a hosted AI app subscription when you already have API access. It is also useful for building a private ChatGPT-style app for a team. The tech stack is TypeScript and React on the frontend using Next.js, Supabase (Postgres) as the database and authentication backend, and it can be deployed to Vercel for hosting. Local development requires Docker to run Supabase locally. An official hosted version is available at chatbotui.com for users who don't want to self-host.

Copy-paste prompts

Prompt 1
How do I deploy Chatbot UI to Vercel and connect it to my OpenAI API key?
Prompt 2
Show me how to set up Chatbot UI locally with Docker and Supabase so I can chat with Ollama models.
Prompt 3
What steps do I need to follow to self-host Chatbot UI and add support for multiple AI providers?
Prompt 4
How do I configure Chatbot UI to use Azure OpenAI instead of the standard OpenAI API?
Prompt 5
Walk me through setting up user authentication and conversation storage in Chatbot UI using Supabase.
Open on GitHub → Explain another repo

Generated 2026-05-18 · Model: sonnet-4-6 · Verify against the repo before relying on details.