finds.dev← search

// the find

mckaywrigley/chatbot-ui

★ 33,346 · TypeScript · MIT · updated Aug 2024

AI chat for any model.

An open-source, self-hostable ChatGPT-style UI supporting most major LLM providers (OpenAI, Anthropic, Azure, Google, Mistral, Groq, OpenRouter, Perplexity) plus local models via Ollama. It's for teams who want a full-featured, white-labelable chat interface backed by their own Postgres/Supabase instance rather than a wrapper around one vendor's API.

The provider abstraction is genuinely thorough — each LLM gets its own route handler (app/api/chat/{provider}/route.ts) rather than one leaky switch statement, so adding a new provider doesn't touch existing ones. It's a real data model, not a toy: workspaces, folders, presets, prompts, assistants, tools, and file collections all persist in Postgres via Supabase instead of browser storage, which also fixes the storage-limit and multi-device problems the README calls out. The retrieval pipeline has dedicated processors for pdf, docx, csv, json and markdown, which is more file-type coverage than most RAG bolt-ons ship with.

Last push was mid-2024 — the README still says "Be back soon" on a promised big update that, over a year later, never shipped. Treat this as unmaintained, not actively developed. Local setup is heavy for what should be a quick eval: Docker, the Supabase CLI, and hand-editing a SQL migration file to inject project_url and service_role_key before anything runs. Test coverage is thin for the surface area — one Jest unit test and a single Playwright login spec covering a codebase with a dozen provider integrations and a full retrieval system. The maintainer explicitly restricts GitHub Issues to code-only bugs and redirects setup/support questions to Discussions, which signals a project past the point of being actively triaged.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →