- Next.js App Router
- React Server Components (RSCs), Suspense, and Server Actions
- Vercel AI SDK for streaming chat UI
- Support for OpenAI (default), Anthropic, Hugging Face, or custom AI chat models and/or LangChain
- Edge runtime-ready
- shadcn/ui
- Styling with Tailwind CSS
- Radix UI for headless component primitives
- Icons from Phosphor Icons
- Chat History with Supabase Postgres DB
- Supabase Auth for authentication
This template ships with OpenAI gpt-3.5-turbo
as the default. However, thanks to the Vercel AI SDK, you can switch LLM providers to Anthropic, Hugging Face, or using LangChain with just a few lines of code.
You can deploy your own version of the Next.js AI Chatbot to Vercel with one click:
This demo uses GitHub Oauth. Follow the GitHub OAuth setup steps on your Supabase project.
In the Supabase Dashboard, navigate to Auth > URL configuration and set your Vercel URL as the site URL.
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
.env
file or it will expose secrets that will allow others to control access to your various OpenAI and authentication provider accounts.
Copy the .env.example
file and populate the required env vars:
cp .env.example .env
Install Docker or Colima
Install the Supabase CLI and start the local Supabase stack:
pnpm install supabase --save-dev
npx supabase start
Run migrations
npx supabase login
npx supabase link --project-ref <project_ref_id>
npx supabase db reset
Install the local dependencies and start dev mode:
pnpm install
pnpm dev
Your app template should now be running on localhost:3000
npx supabase gen types typescript --project-id "<project-ref>" --schema public > lib/db_types.ts
$ npx supabase migration list
Enter your database password:
Retrying... db.xxxxxxxxxxx.supabase.co 5432
LOCAL │ REMOTE │ TIME (UTC)
─────────────────┼────────────────┼──────────────────────
20230707053030 │ 20230707053030 │ 2023-07-07 05:30:30
20230717154030 │ 20230717154030 │ 2023-07-17 15:40:30
20230803223023 │ │ 2023-08-03 22:30:23
$ npx supabase migration repair 20230803223023 --status applied