A chat app starter kit that actually finishes the job
ChatJS is a batteries-included, multi-provider AI chat foundation you can clone and customize instead of rebuilding auth, streaming, and model routing from scratch.

What it does
ChatJS is a Next.js monorepo that packages up everything you need to ship an AI chat interface: 120+ models via Vercel AI Gateway, GitHub/Google/anonymous auth, file attachments, branching conversations, shareable links, web search, image generation, code execution, and even MCP support. It also spits out desktop apps via Electron. A CLI scaffolds your own instance and generates the required config and env vars.
The interesting bit
The “resumable streams” feature uses Redis to let a generation survive a page refresh—simple, but exactly the kind of detail you forget to build until users complain. The stack is aggressively modern (App Router, RSC, tRPC, Drizzle, Better Auth) without being exotic; it’s basically the Vercel ecosystem’s greatest hits assembled into a working app.
Key highlights
- One API key reaches Claude, GPT, Gemini, and Grok through Vercel AI Gateway
- Branching conversations: fork threads to explore alternate paths
- Desktop packaging via Electron (macOS, Windows, Linux)
- Langfuse observability and Pino structured logging wired in
- Changesets-driven releases; CLI publishes to npm, desktop installers to GitHub Releases
Caveats
- Heavy Vercel dependency: AI Gateway, Blob, Analytics—migration elsewhere would be work
- Redis required for the resumable streams feature; not optional if you want that behavior
- The README doesn’t specify test coverage or quantify “production-ready” with metrics
Verdict
Grab this if you’re building a chat product and want to ship this week, not next quarter. Skip it if you need a lightweight drop-in component or aren’t prepared to run PostgreSQL and Redis.