Chat SDK is a free, open-source template built with Next.js and the AI SDK that helps you quickly build powerful chatbot applications.
Read Docs · Features · Model Providers · Deploy Your Own · Running locally
- Next.js App Router
- Advanced routing for seamless navigation and performance
- React Server Components (RSCs) and Server Actions for server-side rendering and increased performance
- AI SDK
- Unified API for generating text, structured objects, and tool calls with LLMs
- Hooks for building dynamic chat and generative user interfaces
- First-class integrations for OpenAI, Gemini, Fireworks, and more
- shadcn/ui
- Styling with Tailwind CSS
- Component primitives from Radix UI for accessibility and flexibility
- Data Persistence
- Neon Serverless Postgres for saving chat history and user data
- Supabase Storage for secure file uploads and retrieval via signed URLs
- Auth.js
- Simple and secure authentication
The application talks directly to OpenAI and Google Gemini through the AI SDK. Each chat mode is mapped to a model from both providers:
| Model ID | OpenAI | Gemini |
|---|---|---|
chat-model |
gpt-5-mini |
gemini-2.5-flash |
chat-model-fast |
gpt-5-nano |
gemini-2.5-flash-lite |
chat-model-reasoning |
gpt-5 |
gemini-2.5-pro |
title-model |
gpt-5-nano |
gemini-2.5-flash-lite |
artifact-model |
gpt-5-mini |
gemini-2.5-flash |
Set OPENAI_API_KEY and GEMINI_API_KEY, and optionally AI_DEFAULT_PROVIDER (openai or gemini) to decide which provider is used by default.
You can deploy your own version of the Next.js AI Chatbot to Vercel with one click:
You will need to use the environment variables defined in .env.example to run Next.js AI Chatbot. It's recommended you use Vercel Environment Variables for this, but a .env file is all that is necessary.
Note: You should not commit your
.envfile or it will expose secrets that will allow others to control access to your various AI and authentication provider accounts.
- Install Vercel CLI:
npm i -g vercel - Link local instance with Vercel and GitHub accounts (creates
.verceldirectory):vercel link - Download your environment variables:
vercel env pull
pnpm install
pnpm devYour app template should now be running on localhost:3000.