Cartwright vs create-next-app
Both are one-command Next.js scaffolds — the difference is what exists when the command finishes. create-next-app hands you a blank canvas: routing and tooling, no pages, no data layer, no admin. create-cartwright hands you a running product on the same stack: a designed homepage, Prisma database with seeded content, an admin with auth, optional cart/checkout, JSON-LD, and an AI tool surface your coding agent can drive. Start blank when the app is genuinely novel and you want zero opinions; start with Cartwright when the goal is a website or shop — you skip the first two weeks of plumbing and still own every line, because it is your repo either way.
| Dimension | Cartwright | create-next-app |
|---|---|---|
| What exists after the command | A running site: design system, seeded database, admin, auth, SEO/JSON-LD — and a webshop if you want it. | A blank app directory with routing, TypeScript and Tailwind configured. Everything else is yours to build. |
| Stack | Next.js 16 + React 19 + Tailwind v4 + Prisma + Stripe + NextAuth — pre-wired. | Next.js + your choices; official, minimal, unopinionated. |
| Freedom | Opinionated defaults you can rip out — it is a normal repo, not a framework on top. | Total — no opinions to remove. This is its genuine strength for novel apps. |
| AI-agent readiness | Agent rules files, an MCP server, a REST tool surface and plan-first admin tools ship in the box. | The 16.3 next-dev-loop skill helps agents iterate, but there is no product surface to drive. |
| Time to a shippable website/shop | Minutes (measured 99 s to a designed homepage with an AI agent). | Days to weeks — auth, data, admin, checkout and SEO are all still ahead of you. |
| Ownership | MIT; your repo from the first commit. | MIT; your repo from the first commit. Equal. |
Frequently asked
- Is create-cartwright built on create-next-app?
- No — it scaffolds a complete open-source Next.js engine (Cartwright) from a template repo. The result is a normal Next.js 16 project you could have built from create-next-app, with the product layers already implemented.
- When is create-next-app the better choice?
- When you are building something that is not a website, shop or content product — a dashboard, an internal tool, a novel app — and you want zero opinions in the repo. Blank is a feature there.
- Can I strip Cartwright back to almost-blank?
- Yes — it is your repo, and the engine is flag- and module-gated. But if you know you want near-blank, start with create-next-app instead; Cartwright earns its weight when you use the product layers.
Try it in one command
npx create-cartwright@latest my-shopMIT-licensed. Read the docs or see the full comparison hub.