An interactive CLI that scaffolds an opinionated, production-ready Next.js 16 · React 19 · TypeScript project — and leaves you in a formatted, linted, git-initialized app that runs on the first try.
npm create next-suite@latest my-app
# or: pnpm create next-suite@latest my-app · yarn create next-suite@latest my-app · bun create next-suite@latest my-appAnswer the guided wizard — it has back-navigation, so there's nothing to memorize — and you land in a ready-to-run project. Prefer a scripted run? Every choice is also a flag (see Non-interactive).
Core — in every project
- ⚡ Next 16 · React 19 · TypeScript (strict) — App Router, React Compiler,
@/*alias - 🧰 DX toolchain — ESLint · Prettier · Husky · commitlint · typed env
Optional — pick in the wizard
- 🎨 Tailwind + shadcn/ui
- 🗄️ Database — Postgres / MySQL · Drizzle / Prisma
- 🔌 API — tRPC / oRPC + TanStack Query · optional OpenAPI + Scalar
- 🔐 Better-Auth · ✉️ Resend
- 🐳 Production — Docker + nginx · 🤖 CI/CD — GitHub Actions
Full feature details
- Next.js 16 · React 19 · TypeScript (strict) — App Router, the React Compiler enabled,
@/*path alias,noUncheckedIndexedAccess. - ESLint (flat config) — Next core-web-vitals + TypeScript presets,
simple-import-sort, import-hygiene rules, kept Prettier-compatible. - Prettier — with
prettier-plugin-packagejson. - Git hooks — Husky +
lint-staged+ commitlint (Conventional Commits). - Typed environment variables —
@/envvia@t3-oss/env-nextjs+zod, validated at startup; features add their vars automatically. - EditorConfig,
.gitattributes,.nvmrc, and your choice of npm / pnpm / yarn / bun. - Tailwind CSS + shadcn/ui (optional) — Tailwind v4 wiring plus the shadcn init flow (base, preset, pointer).
- Local database (optional) — a dockerized PostgreSQL or MySQL with Drizzle or Prisma:
POSTGRES_*/MYSQL_*env vars,db:*scripts, client generation on install. - API layer (optional) — tRPC or oRPC with TanStack Query, RSC prefetching + hydration, a health route; oRPC can add an OpenAPI (REST) layer with an optional Scalar docs UI.
- Auth (optional) — Better-Auth (email + password), headless: schema tables per ORM,
/api/authhandler, typedgetSession, the session in the API context. - Email (optional) — a Resend client with
EMAIL_FROM, wired through the typed env. - Production deployment (optional) — a multi-stage Docker build (standalone), nginx (terminating TLS or behind an upstream proxy), a
docker-compose.prod.yml, and an entrypoint that waits for the database and migrates on start. For proxied projects, the companionnext-suite provisioncommand (beta) sets up the server over SSH (interactive wizard,--yesfor CI);next-suite deprovisiontears it back down. - CI/CD (optional) — GitHub Actions: CI (lint, type-check, format, build) plus CD (build & push to GHCR, deploy over SSH).
After generation it can, depending on your answers: initialize git (on main), install dependencies, auto-format, and make an initial commit — a clean, formatted, committed start.
Re-record with vhs assets/demo.tape after changing the wizard.
Pass --yes to build from flags and defaults with no prompts:
npx create-next-suite@latest my-app --yes --pm pnpm --tailwind \
--database postgres --orm drizzle --auth better-authEvery wizard choice is also a flag. The CLI reference lists all of them with their real defaults, plus every --yes validation rule, every wizard step, and the exit codes. create-next-suite --help prints the short form.
Node.js ≥ 24 · a package manager (npm / pnpm / yarn / bun) · git (for the initial commit) · Docker (only for the database and production features).
For next-suite provision: an ssh client with ssh-keygen, and the GitHub CLI gh authenticated — or --skip-github.
For proxied projects, next-suite provision / deprovision set up and tear down the server over SSH — new and experimental, run --dry-run first. It installs nothing; see Server requirements for what the server needs first, and Provisioning for the full workflow.
| Document | What it covers |
|---|---|
| CLI reference | Every flag, every wizard step, exit codes |
| The generated project | File tree, packages, scripts, env vars, next-suite.json |
| Provisioning | provision / deprovision / config, step by step |
| Server requirements | What a server needs before provision runs |
| Troubleshooting | Symptom → cause → fix |
| Architecture | Monorepo, two-phase flow, layering, generation pipeline |
Start at the documentation index. Release history is in the changelog.
A Turborepo monorepo; the product is the CLI in packages/cli.
pnpm build # build everything (turbo)
pnpm check-types # type-check
pnpm lint # lint
pnpm test # tests (vitest)
pnpm cli # build the CLI and run it end-to-endSee CONTRIBUTING.md to get set up and docs/architecture.md for how the CLI is put together. Conventions and extension points for coding agents live in packages/cli/AGENTS.md. Security policy: SECURITY.md. Code of conduct: CODE_OF_CONDUCT.md.
MIT © Maurice Reim
