chatbot

NameLast commit messageLast commit date
.cursorRestore Ultracite + fix sidebar (#1233)1 year ago
.githubfeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
.vscodefix: title generation + ai sdk upgrade (#1392)9 months ago
appfeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
artifactsfeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
componentsfeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
hooksfeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
libfeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
publicfeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
testsfeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
.env.examplefeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
.gitignorefeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
biome.jsoncUpgrades (#1419)7 months ago
components.jsonRedesign sidebar (#1455)7 months ago
drizzle.config.tsfeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
instrumentation-client.tsfix(botid): re-add bot protection to demo branch (#1445)8 months ago
instrumentation.tsrename openchat branding to chatbot on demo (#1421)8 months ago
LICENSEClean up deps2 years ago
next.config.tschore: conditionalize mfe config behind demo env var (#1463)7 months ago
package.jsonfeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
playwright.config.tstest: add playwright e2e tests for chat, auth, model selector, and api (#1355)10 months ago
pnpm-lock.yamlfeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
postcss.config.mjsRestore Ultracite + fix sidebar (#1233)1 year ago
proxy.tsfeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
README.mdfeat: v1 — persistent shell, model gateway, artifact improvements (#1462)7 months ago
tsconfig.jsonfix: scroll behavior, browser back navigation, and weather widget sizing (#1336)11 months ago
vercel-template.jsonAdd `vercel-template.json` (#1193)1 year ago
vercel.jsonchore: conditionalize mfe config behind demo env var (#1463)7 months ago
README.md
Chatbot

Chatbot

Chatbot (formerly AI Chatbot) 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


Features

  • 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
    • Supports OpenAI, Anthropic, Google, xAI, and other model providers via AI Gateway
  • shadcn/ui
  • Data Persistence
  • Auth.js
    • Simple and secure authentication

Model Providers

This template uses the Vercel AI Gateway to access multiple AI models through a unified interface. Models are configured in lib/ai/models.ts with per-model provider routing. Included models: Mistral, Moonshot, DeepSeek, OpenAI, and xAI.

AI Gateway Authentication

For Vercel deployments: Authentication is handled automatically via OIDC tokens.

For non-Vercel deployments: You need to provide an AI Gateway API key by setting the AI_GATEWAY_API_KEY environment variable in your .env.local file.

With the AI SDK, you can also switch to direct LLM providers like OpenAI, Anthropic, Cohere, and many more with just a few lines of code.

Deploy Your Own

You can deploy your own version of Chatbot to Vercel with one click:

Deploy with Vercel

Running locally

You will need to use the environment variables defined in .env.example to run 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 .env file or it will expose secrets that will allow others to control access to your various AI and authentication provider accounts.

  1. Install Vercel CLI: npm i -g vercel
  2. Link local instance with Vercel and GitHub accounts (creates .vercel directory): vercel link
  3. Download your environment variables: vercel env pull
pnpm install
pnpm db:migrate # Setup database or apply latest database changes
pnpm dev

Your app template should now be running on localhost:3000.