← all repositories
vercel-labs/gemini-chatbot

Vercel's reference stack for AI chat, now Gemini-flavored

A production-grade template that wires Next.js App Router, the AI SDK, and Google's Gemini into a deployable chatbot with one click.

1.3k stars TypeScript Chat AssistantsApp Builders
gemini-chatbot
Velocity · 7d
+1.7
★ / day
Trend
steady
star history

What it does

This is Vercel’s official open-source chatbot template, retuned for Google’s Gemini 1.5 Pro. It gives you a full-stack Next.js 14 app with chat history, user auth, file storage, and streaming LLM responses — all wired to Vercel’s platform services. Clone, add env vars, deploy.

The interesting bit

The “generative UI” hook is the quiet star: the AI SDK lets the model return structured data and tool calls, not just text blobs, so your frontend can render actual components on the fly. The template defaults to Gemini but the provider swap is deliberately trivial — a few lines to jump to OpenAI, Anthropic, or Cohere.

Key highlights

  • Next.js App Router with React Server Components and Server Actions
  • Vercel AI SDK for unified LLM text, structured object, and tool-call generation
  • shadcn/ui + Tailwind + Radix primitives for the interface layer
  • Vercel Postgres (Neon) for chat history, Vercel Blob for object storage
  • NextAuth.js for authentication
  • One-click Vercel deploy with pre-configured storage provisioning

Caveats

  • Running locally requires the Vercel CLI and linking to a Vercel project to pull env vars; not a simple cp .env.example .env flow
  • The README notes you should not commit .env files, but doesn’t detail what secrets are actually required beyond AUTH_SECRET and GOOGLE_GENERATIVE_AI_API_KEY

Verdict

Grab this if you want a credible starting point for a production AI chat interface and prefer Vercel’s ecosystem tightness over roll-your-own plumbing. Skip it if you’re not hosting on Vercel or need deep customization of the auth or data layers — this is a template, not a framework.

heatdrop uses Google Analytics to see which pages get read — nothing else. Your call. How we handle data.