New Project

A persisted Next.js chat template for Eve, built with shadcn/ui, Tailwind CSS, Streamdown, Better Auth, Drizzle, Neon, and Upstash Redis.
Two ways to get going:
# Uses the linked project's team by default./scripts/setup.sh# Or target a specific team (also accepts a bare team slug)./scripts/setup.sh --scope <team-slug>
The --scope is optional; omit it to use the linked project's team. The script needs the vercel CLI, node, pnpm, and openssl. Prefer to do it by hand? Follow the sequential steps below, or the full Setup and Deployment [blocked] guide.
For the full local setup, storage provisioning, Sign in with Vercel credentials, and production deploy flow, see Setup and Deployment [blocked]. For the runtime architecture, streaming model, persistence flow, and extension points, see How the Chatbot Works [blocked].
Install dependencies with pnpm:
pnpm install
Link the Vercel project and pull environment variables:
vercel link
Provision storage with the Vercel CLI integration commands:
# Required: persisted chat, auth, Eve session state, and message snapshotsvercel integration add neon# Required: Redis-backed rate limitingvercel integration add upstash
Follow the prompts to connect each resource to the linked project. Then pull the generated environment variables locally:
vercel env pull .env.local --yes
Required environment variables:
DATABASE_URL=BETTER_AUTH_SECRET=NEXT_PUBLIC_VERCEL_APP_CLIENT_ID=VERCEL_APP_CLIENT_SECRET=UPSTASH_REDIS_REST_URL=UPSTASH_REDIS_REST_TOKEN=KV_REST_API_URL=KV_REST_API_TOKEN=
Optional environment variables:
# Override the app origin for custom production domains.BETTER_AUTH_URL=# Enable hosted Notion support.NOTION_CONNECTOR=
Create the Notion connector:
vercel connect create mcp.notion.com --name notion
The deploy button does not require Notion. For manual setup, put the returned connector UID in NOTION_CONNECTOR. The app falls back to notion, so local connectors created with --name notion work without editing agent/connections/notion.ts.
If the connector is not attached to the linked project, run:
vercel connect attach <connector-uid> --yesvercel env pull .env.local
Create the database tables:
pnpm db:migrate
For production, run migrations with Vercel production env vars:
vercel env run -e production -- pnpm db:migrate
Start the development server:
pnpm dev
/eve/v1/* routeslib/dbThis template intentionally does not include Slack code, file uploads, Vercel Blob, guest mode, NextAuth/Auth.js, or AI Elements.
Edit the agent in agent/agent.ts. Its behavior is defined in agent/instructions.md, and tools live in agent/tools/.
The browser talks to Eve with useEveAgent() from eve/react; the app stores Eve stream events and session state so /chat/[id] can resume the same durable conversation after refresh.
