A streamlined full-stack template built for rapid development with Next.js and Convex. This version is focused on simplicity, real-time data, and fast momentum—ideal for quickly building modern web apps without worrying about schemas upfront.
- Next.js 15 – App Router for effortless routing and SSR/SSG
- Convex – Real-time backend, type-safe functions, and live data
- Tailwind CSS v4 – Utility-first styling
- shadcn/ui – Accessible, beautiful React components
- Better Auth - Simple, extensible, reliable auth.
This template includes:
-
Convex instructions: See
.github/instructions/convex.instructions.mdfor workspace-specific guidelines on writing Convex functions, schemas, and best practices. These instructions help you stay consistent and leverage Convex to its fullest. -
MCP server integration: The
.vscode/mcp.jsonfile enables Model Context Protocol (MCP) features for advanced code intelligence and automation in VS Code. This project includes:- convex-mcp: For access to your Convex deployment.
- context7: For deep documentation and code search. Requires a Context7 API key, add your key to
.vscode/mcp.json(don't check it into Git though) - ast-grep: For advanced AST-based code search and refactoring. Install the Prerequisites before use.
- mise (recommended) for easy management of Node.js, bun, and other tool versions
- Node.js and bun installed
- Convex CLI installed
-
Clone or use this template:
bunx degit github:ezra-en/ezstack my-app cd my-appOr click "Use this template" on GitHub.
-
Install dependencies:
bun install
-
Initialize Convex backend (if not already done):
bun convex dev
Follow the CLI instructions to set up your Convex project and environment variables.
-
Add environment variables to
.env.local(after Convex setup):# Deployment used by `bun convex dev` CONVEX_DEPLOYMENT=your-anonymous-deployment-name NEXT_PUBLIC_CONVEX_URL=http://your-public-convex-url:3210 NEXT_PUBLIC_CONVEX_SITE_URL=http://your-public-convex-url:3211 # Deployment URL for Next.js (this should be your actual deployment URL, tailscale, or localhost for local dev) NEXT_PUBLIC_DEPLOYMENT_URL=http://localhost:3000
-
Configure your admin account in
convex/init.ts// Configure your credentials here auth.api.createUser({ body: { email: "admin@example.com", name: "Admin", password: "CHANGEME", role: "admin", }, });
-
Start the development server (make sure the predev command succeeds):
bun dev
-
Open your browser to http://localhost:3000 for your application
-
Open your browser to http://localhost:6790 for the Convex Dashboard
app/
ConvexClientProvider.tsx
globals.css
layout.tsx
page.tsx
api/
auth/
[...all]/
route.ts
convex/
auth.config.ts
auth.ts
convex.config.ts
http.ts
init.ts
tasks.ts
_generated/
api.d.ts
api.js
dataModel.d.ts
server.d.ts
server.js
betterAuth/
adapter.ts
admin.ts
auth.ts
convex.config.ts
schema.ts
_generated/
api.ts
component.ts
dataModel.ts
server.ts
lib/
auth-client.ts
auth-server.ts
utils.ts
public/
bun dev– Start development serverbun build– Build for productionbun start– Start production server
- Next.js Documentation
- Convex Documentation
- shadcn/ui Documentation
- Tailwind CSS
- Better Auth Documentation
- @convex/better-auth Documentation
Built by EzraEn • A template for developers who value their time.