// the find
ibelick/zola
Open chat interface for all your models.
Zola is a Next.js chat interface that lets you talk to OpenAI, Claude, Gemini, Mistral, and local Ollama models from one place, with Supabase handling auth and storage. It's aimed at developers who want a self-hosted ChatGPT-style UI without being locked to one provider. The BYOK model via OpenRouter means you pay providers directly rather than a middleman.
Multi-provider routing through the Vercel AI SDK is the right call — it abstracts streaming, tool calls, and model differences behind one interface instead of rolling per-provider plumbing. The project structure is clean: API routes are thin, UI components are well-separated, and there's a real persistence layer (Supabase) rather than localStorage hacks. Docker and Vercel one-click deploy are both present, which covers the two most common self-hosting paths. MCP support is in progress, and the foundation (tool invocation components already exist) suggests it'll land without a rewrite.
MCP is labeled 'wip' with no timeline and the load-mcp-from-url path is the kind of thing that goes wrong in ways the README doesn't warn you about — arbitrary remote code execution via MCP servers is a real attack surface. Supabase is a hard dependency for auth and file storage, so self-hosting 'without Supabase' means ripping out a significant chunk of the app, not just swapping an env var. The last push is December 2025 and the repo is tagged beta with a note that the codebase 'may change' — for a project with 299 forks, that's a lot of downstream pain if the API surface shifts. There's no visible test suite in the tree, which for something handling API keys and user data is a gap worth noting.