Skip to content

Repository files navigation

create-next-suite — a better starting point for Next.js.

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 downloads node license

🚀 Quick start

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-app

Answer 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).

🧩 What you get

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@/env via @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/auth handler, typed getSession, 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 companion next-suite provision command (beta) sets up the server over SSH (interactive wizard, --yes for CI); next-suite deprovision tears 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.

🎬 Preview

The create-next-suite wizard scaffolding a project, from the first prompt to the finished stack summary.

Re-record with vhs assets/demo.tape after changing the wizard.

🧑‍💻 Non-interactive / CI

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-auth

Every 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.

📋 Requirements

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.

🛰️ Server provisioning (beta)

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.

📚 Documentation

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.

🏗️ Development

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-end

See 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.

📄 License

MIT © Maurice Reim

About

A better starting point for Next.js — an interactive CLI that scaffolds a production-ready app, and provisions the server it deploys to.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages