Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A persisted Next.js chat template for eve, built with shadcn/ui, Tailwind CSS, Streamdown, Better Auth, Drizzle, and Neon.

Next.js Edge Middleware example that uses Split feature flags to A/B test a marketing page and an about page, styled with Tailwind CSS.

Minimal Flask example that runs a WSGI Python API on Vercel Serverless Functions using the Python Runtime.

Vercel example boilerplate that runs an AI SDK backend on a Hono server and deploys with the Vercel CLI.

Next.js Edge Middleware example that reads a cookie at the edge and rewrites visitors to a statically generated page based on its value.
The eve Chat Template is a Next.js chat boilerplate from the vercel/eve repository that gives an eve agent a working chat UI with shared-password access and browser-persisted conversations, upgradeable to a production multi-user app backed by Neon, Upstash, and Sign in with Vercel.
The eve Chat Template is a Next.js chat application template built for eve, Vercel's open framework for building agents. It ships a chat interface that talks to an eve agent over same-origin /eve/v1/* routes, stores eve session cursors and stream events so a conversation resumes after refresh, and starts from a single environment variable: a shared password. Its output is a deployable web app — one click on Deploy with Vercel, or pnpm install plus pnpm dev locally — with persistence, authentication, database, and rate-limiting layers you enable incrementally rather than all at once. The agent itself lives in the repo: agent/agent.ts holds the definition, agent/instructions.md the behaviour, agent/tools/ the tools, and agent/memory/profile.ts the per-user long-term memory.
EVE_CHAT_PASSWORD, secure session cookie, browser localStorage), Production (Neon, Upstash, and all Sign in with Vercel variables present, with Neon chat persistence and per-user Vercel Blob memory), and Local development (nothing configured, local development identity, process-local memory).lib/db for the Neon database.useEveAgent() — imported from eve/react, it drives the browser side while the app stores stream events so the route /chat/[id] can resume the same durable conversation./eve/v1/slack plus Notion, Linear, and Sentry MCP connections created with vercel connect create and referenced via the SLACK_CONNECTOR, NOTION_CONNECTOR, LINEAR_CONNECTOR, and SENTRY_CONNECTOR variables../scripts/setup.sh provisions private Vercel Blob storage, Neon, and Upstash, registers Sign in with Vercel, pulls environment variables, and runs migrations (Blob usage may incur charges).EVE_CHAT_PASSWORD (16+ characters recommended) and get a chatting agent without provisioning a database or Marketplace products../scripts/setup.sh, fill DATABASE_URL, BETTER_AUTH_SECRET, UPSTASH_REDIS_REST_URL, and the Sign in with Vercel credentials, then pnpm db:migrate for cross-device history and per-user memory./eve/v1/slack with vercel connect attach <slack-connector-uid> --triggers --trigger-path /eve/v1/slack --yes, or fall back to the default connector names slack/eve-chat-template, notion, linear, and sentry in local development without editing agent/.pnpm dev and no external services, adding EVE_CHAT_PASSWORD to .env.local when the same password prompt is wanted offline.In starter mode you click Deploy with Vercel, enter an EVE_CHAT_PASSWORD of at least 16 characters, and open the deployed app to chat; chats and eve session cursors are kept in that browser's localStorage and are not shared across browsers or users. Upgrading to production runs the setup script, which provisions Blob storage, Neon, and Upstash, registers Sign in with Vercel, pulls environment variables, and runs migrations — the app then switches to Sign in with Vercel, Neon chat persistence, and per-user long-term memory. Production mode takes precedence whenever its complete environment is present, and the app fails closed in a production deployment when neither mode is configured. For manual setups, attach an unlinked connector with vercel connect attach <connector-uid> --yes and re-pull with vercel env pull .env.local.
The template is source code in the public vercel/eve repository, so cloning and deploying it costs nothing. Running it can cost money: Vercel Blob usage may incur charges, and production mode depends on Neon and Upstash, whose own usage pricing applies to whatever the app consumes.
Starter mode guards the app with a single shared EVE_CHAT_PASSWORD environment variable (16+ characters recommended) plus a secure session cookie. Anyone holding that password shares the same agent identity and connection grants, so starter mode suits one trusted operator rather than a public launch.
Not in starter mode: chats and eve session cursors live in the browser's localStorage and are not shared across browsers or users. Cross-device history requires production mode, where chats are stored in Neon and long-term memory lives in a per-user Vercel Blob document.
Yes. Run pnpm install and then pnpm dev; with neither mode configured the app uses a local development identity, browser localStorage for chats, and process-local long-term memory. Add EVE_CHAT_PASSWORD to .env.local if you want the same password prompt locally.
No. The template intentionally omits file uploads, guest mode, NextAuth/Auth.js, and AI Elements, relying on Better Auth with Sign in with Vercel for production sign-in. Long-term memory on Vercel also needs Blob storage to be set up before it works across sessions.
The app fails closed in a production deployment when neither starter nor production mode is configured, so it will not serve the chat unprotected. Production mode takes precedence whenever Neon, Upstash, and all Sign in with Vercel variables are present.
