One command scaffolds TypeScript, ESLint, Tailwind CSS, and the App Router — configured correctly, ready to ship.
One command, no global install required. npx fetches the latest version of create-next-app every time — you always scaffold with the current release.
npx create-next-app@latest
TypeScript, Tailwind, ESLint, App Router. Pick your tools interactively. Every choice is reversible — it's just config files you can edit at any time.
? TypeScript … Yes ? Tailwind … Yes ? App Router … Yes
cd into your project. Every dependency is installed, every config is set up, and you'll find a working starter page waiting for you in app/page.tsx.
cd my-app code .
Push to GitHub, connect to Vercel, done. Your app deploys to a global edge network in under 30 seconds — no infra to manage, ever.
git push origin main # Vercel deploys automatically
create-next-app sets up tools. It doesn't choose your architecture, state management, or component library. Those decisions are yours.
The App Router is the present and future of Next.js routing. create-next-app scaffolds the /app directory, root layout, and a starter page.tsx so you can skip the boilerplate and focus on what you're building.
// app/layout.tsx
export default function RootLayout({
children,
}: {
children: React.ReactNode
}) {
return (
<html lang="en">
<body>{children}</body>
</html>
)
}Every file has a home. The App Router collocates your UI, data fetching logic, loading states, and error boundaries in the same folder — keeping your codebase navigable as it grows.
app/Routes, layouts, pages, server componentsapp/api/API route handlers (GET, POST, etc.)components/Reusable UI componentslib/Utilities, db clients, auth helperspublic/Static assets (images, fonts, favicons)450+ official examples in the Next.js repo. Each is a complete, working app you can scaffold in one command.
MDX, dynamic routes, RSS feed, syntax highlighting.
--example blogOAuth providers, JWT sessions, protected routes.
--example with-nextauthPostgres, schema, migrations, server actions.
--example with-prismaCheckout, webhooks, subscription billing.
--example with-stripe-typescriptMonorepo workspace, shared packages, build pipeline.
--example with-turborepoLocale routing, translations, dynamic segments.
--example app-dir-i18n-routing--typescriptUse TypeScript (default)
--javascriptUse JavaScript instead
--tailwindAdd Tailwind CSS config
--eslintAdd ESLint config
--appUse the App Router
--src-dirUse a /src directory
--turbopackEnable Turbopack dev server
--import-aliasSet custom import alias
--example [name]Start from official example
--emptyMinimal scaffold only
--skip-installSkip npm install step
--use-pnpmUse pnpm as package manager
create-next-app projects are pre-configured for Vercel. Connect your repo once — every push to main deploys automatically to a global edge network. Preview URLs on every branch.
$ git push origin main Vercel CLI deploying... ✓ Detected Next.js 15 ✓ Build completed [4.2s] ✓ Generated 14 static pages ✓ Edge functions deployed Preview: my-app-abc123.vercel.app Production: my-app.vercel.app ✓ Deployed in 11.8s
Node.js 18.18 or later is required. We recommend using the latest LTS release. You can check your version with node --version, and use nvm or fnm to switch versions.
New projects should use the App Router (--app flag, which is the default). It supports React Server Components, streaming, nested layouts, and parallel routes. The Pages Router is fully supported but won't receive new features.
The default scaffold includes a starter page.tsx with the Next.js logo and some example CSS. --empty creates a truly minimal project — just the config files and a blank page.tsx with a single div. Great for starting from absolute zero.
Yes. Pass --use-pnpm, --use-yarn, or --use-bun to the command. create-next-app will install dependencies with your chosen package manager and configure the lockfile accordingly.
Run npm install next@latest react@latest react-dom@latest in your project directory. Then check the Next.js upgrade guide at nextjs.org/docs/upgrading for any codemods or breaking changes in the specific version you're jumping to.
That's it. One command.
Free. MIT. Maintained by Vercel.