Next.js + Convex
Overview of the Next.js + Convex starter: what it ships, what you need, and where to go next.
This kit uses Next.js App Router, a Convex backend and Convex Auth. You get the account, workspace and project foundation, a separate admin application, and separate agent connections for users and application administrators.
Open the live demo · Repository
The stack
| Layer | What the kit uses |
|---|---|
| Frontend | Next.js 16 App Router, React 19, Cache Components, Tailwind CSS 4, shadcn/ui |
| Admin | A second Next.js application in apps/admin on its own origin, sharing the same Convex backend |
| Backend and database | Convex: document database, reactive queries, mutations, HTTP actions, file storage, crons |
| Authentication | Convex Auth (@convex-dev/auth) with password, magic link, and optional GitHub and Google |
| Agent connections | Two convex-mcp-gateway component instances served from the Convex backend |
| Emails | React Email templates in apps/email; Resend for production auth emails |
| Hosting used by the demo | Web and admin apps on Vercel, backend on Convex. A netlify.toml is also included for the web app |
Convex replaces the separate database, realtime and storage services you would otherwise run. Locally, the Convex CLI manages a local backend for you, so there is no Docker in this kit.
What you get out of the box
- Sign-up, login, email verification, magic links and password reset through Convex Auth.
- Onboarding that completes a profile and creates the first workspace.
- Workspaces with
owner,admin,memberandreadonlyroles, invitations and member management. - Workspace-scoped projects with comments and reactive updates.
- In-app notifications, feedback boards, a public roadmap, an MDX blog, a changelog and a Fumadocs documentation site.
- A dedicated admin application (
apps/admin, port 3002) serving/app-admin: users, workspaces, marketing content, feedback moderation, the payment gateway, admin agent connections and audited user impersonation. The demo admin runs athttps://nextjs-convex-admin.usenextbase.com. - A
platform:grantAdmininternal mutation to promote your first application administrator from the CLI. - A User MCP at
/mcp/userand a read-only Admin MCP at/mcp/admin, both with OAuth consent. - Convex file storage with application-owned metadata.
- 41 React Email templates with a preview server.
- Stripe, PostHog, Sentry and OpenTelemetry integrations that you enable through environment variables.
Some paths still use Supabase code
The core login, onboarding, workspace and project paths use Convex Auth and Convex data. Some older advanced settings, billing and application routes still contain Supabase actions: at the time of writing, 36 files under apps/web/src and 21 under apps/admin/src still import from src/supabase-clients/, including payments/stripe-payment-gateway.ts. The billing tables exist in the Convex schema but have no Convex functions yet. Review and migrate those paths before relying on them in your product.
Prerequisites
| Requirement | Detail |
|---|---|
| Node.js | 24 (.nvmrc says v24; setup.sh refuses other majors) |
| pnpm | 11.1.2 through Corepack (packageManager in package.json) |
| Docker | Not needed. Convex runs a local backend through its CLI |
| Convex account | Only for cloud deployments. Local development uses the CLI-managed local backend |
| Resend account | For production auth emails (AUTH_RESEND_KEY, AUTH_EMAIL_FROM on the Convex deployment) |
| Stripe, PostHog, Sentry | Optional, only for the integrations you enable |
Next steps
- Installation: clone, install, run
pnpm dev, create your first account, workspace and administrator. - Environment variables: what lives in the web and admin env files and what lives on the Convex deployment.
- Authentication: providers, sessions, the admin app and how functions are protected.
- Agent connections: the User and Admin MCP servers, their tools and OAuth behaviour.
- Project structure: the monorepo and where to make changes.
- Deployment: publish the Convex backend and deploy the web and admin apps.
For concepts shared across all eight kits, start at getting started.