通过 npx create-cartwright 脚手架生成项目,代码存放在自己的仓库中
cartwright-template — Next.js 电商模板
作者 Teloz1870
Cartwright 是一个基于 Next.js 的开源电商与网站模板,通过 npx create-cartwright 脚手架生成项目,内置 Stripe 支付、Prisma 数据库、管理后台与 WebMCP 代理工具支持。
看看你的网站会是什么样
浏览真实页面截图,比较内容排版与手机效果。点击下方缩略图切换,放大查看整页细节。
全部页面与视图 3
截图用于了解视觉与布局,交互效果请以实际项目为准。
值得关注的模板亮点
从已有项目资料中,快速了解它的特点。
提供 site、light、full 三种 profile,可按需选择是否包含数据库、后台与电商功能
内置 Stripe 支付、Prisma 数据库与 NextAuth 认证相关配置
支持 WebMCP,在页面中注册搜索、购物车等代理工具,但不提供下单工具
输出 JSON-LD、llms.txt、sitemap.xml 与 MCP 端点等面向 AI 爬虫的内容
可选模块以仓库内插件形式提供,包含 wishlist、blog、reviews 等
模板详细介绍
Cartwright 是一个以模板形式分发的开源网站与电商引擎,代码托管在 GitHub,采用 MIT 许可。它通过 npx create-cartwright 命令生成项目,而不是提供托管账号,因此代码归使用者所有。模板基于 Next.js App Router 构建,数据库相关配置使用 Prisma,支付集成 Stripe,认证使用 NextAuth。
脚手架提供三种 profile:site 为无数据库、无登录的静态网站;light 为默认配置,包含数据库、管理后台、MCP/JSON-LD 发现能力;full 包含全部功能,是 agent-marketplace 模板所必需的。项目行为由 brand.config.ts 中的 brand.mode 决定,可选 website(营销站,无购物车)、webshop(完整电商前台,含商品列表、详情、购物车、结账、账户与 Stripe)以及 agent-marketplace(面向代理的商店,含 Agent Card、协商与托管验证)。可选模块以仓库内插件形式提供,包括 phone-widget、wishlist、blog、reviews 等。
模板强调对代理与 AI 爬虫的适配:每个页面输出 JSON-LD 结构化数据,提供 llms.txt、sitemap.xml、robots.txt、.well-known/ucp 与 mcp.json,并内置公开 MCP 服务端点 /api/mcp 与工具目录 /api/v1/tools。WebMCP 模式下,页面通过 document.modelContext 注册页面级工具,例如搜索商品、读取购物车、添加当前商品到购物车等,但不提供下单工具,结账仍由人工完成。
使用限制方面,模板本身是代码而非托管服务,域名、托管、数据库、支付与 AI 等外部服务需自行准备并可能产生费用;演示图片、字体、图标等第三方素材的许可需单独核对。README 中提到的性能与上手时间数据属于项目方自述,未在本资料中独立验证。
适合你的项目吗?
适用场景
- 搭建自有代码仓库中的电商前台,包含商品列表、详情、购物车与结账流程
- 构建仅需页面与联系表单、不需要数据库和登录的营销网站或落地页
- 为商店增加面向 AI 代理的 MCP 工具与结构化数据,便于被代理或爬虫读取
- 在已有 Next.js 项目中参考或移植其设计包、插件与代理工具实现
适合人群
- 希望自行托管并掌握全部代码的开发者或小团队
- 需要 Stripe 结账与 Prisma 数据库的 Next.js 电商项目
- 关注 MCP、WebMCP 等代理交互协议实现的开发者
- 需要同时覆盖营销站与电商站、并希望按 profile 裁剪功能的项目
上手与定制指南
结合仓库当前版本的说明,按下面的资料检查内容、配置与运行要求。
- 1
使用 npx create-cartwright@latest 生成项目,site profile 无需数据库与登录配置
- 2
light 与 full profile 需要准备数据库连接与 AUTH_SECRET,部署到 Vercel 时按 DEPLOY.md 完成数据库初始化
- 3
本地手动克隆时执行 npm install,并在 .env.local 中配置 AUTH_SECRET 与 DATABASE_URL,再运行 npm run db:setup
- 4
脚手架会输出管理后台登录信息,并保存到被 gitignore 的 .admin-credentials 文件
- 5
演示图片、字体、图标等第三方素材需按各自许可单独核对,外部服务可能另行收费
授权与来源资料
使用条件与限制
免费使用 · 保留许可声明本次收录的是公开仓库中采用 MIT 许可的免费版本;免费范围为该版本代码,不代表外部服务或第三方素材免费。
使用时需要遵守
- 允许免费使用、修改、商用和分发该版本代码。
- 分发代码副本或实质性部分时,保留原作者版权声明和完整 MIT 许可声明。
- 代码按现状提供;担保与责任限制以原许可证及适用法律为准。
额外费用与待核对事项
- 演示图片、字体、图标及其他第三方素材需按各自许可核对,不能仅凭代码的 MIT 许可判断。
- 域名、托管、数据库、支付或 AI 等外部服务可能另外收费。
- site profile 为纯静态网站,不含数据库、登录与后台,功能受限。
- site profile 不是 CMS,也不支持静态导出,且不含后台、认证、代理工具运行时与购物车。
- WebMCP 代理工具不提供下单能力,结账必须由人工完成。
- 生产环境必须配置 Turso 数据库连接,否则应用无法启动。
- 本地 SQLite 文件仅限开发使用,上线需改用 Turso 等生产数据库。
- 未配置 Stripe 密钥时仅使用模拟结账,无法进行真实支付。
- 未配置 Anthropic API 密钥时 AI 助手不可用,需在后台集成中设置。
- 未配置 Resend 密钥时生产环境不会发送邮件,仅开发环境使用预览邮件。
- main 分支为未发布版本,仅在显式指定 --ref main 时才应使用。
- 生成的项目不会自动更新,需自行拉取新引擎版本。
查看原文依据
Permission is hereby granted, free of charge
许可证原文
no database, no login, nothing to configure
README 原文
Not a CMS, not a static export; no admin, auth or agent tool runtime, and no cart
README 原文
There is no order-placing tool.
README 原文
the app refuses to boot without it
README 原文
local `file:./dev.db` is dev-only
README 原文
Mock checkout instead of real Stripe
README 原文
AI assistant 503s — set via `/admin/integrations`
README 原文
Preview mailer in dev, no email in prod
README 原文
use it only when you deliberately pass `--ref main`
README 原文
https://github.com/Teloz1870/cartwright-template/blob/main/LICENSEhttps://github.com/Teloz1870/cartwright-template/blob/main/README.mdnothing auto-updates it
README 原文
DeepSeek 根据仓库许可证和 README 整理 ·2026-10-04。结果仅覆盖已读取资料,依赖、图片、字体及后续条款变更以各自原文为准。
项目核对记录与介绍依据
模板资料
- 来源平台
- GitHub
- 资料与维护参考分
- 资料较完整 · 88 / 100
- 技术栈
- Next.js · React
- 网站类型
- 电商 · SaaS
这个分数如何计算
本站按许可资料(最高30分)、演示链接(12分)、预览图(10分)、Star数(15分)、记录的维护时间(15分)、描述完整度(8分)、功能记录(5分)和分类资料(5分)计算。它不是代码、安全或性能测试,也不是 Google 评分;有链接不代表已实测可用。
这个项目需要核对什么
- 记录的仓库更新时间
- 2026-10-03
- 截图检查日期
- 2026-10-04
已收录演示链接。请用你的内容与屏幕尺寸检查;有演示不代表表单、认证或支付已经可用。
目录记录的主要技术栈是 Next.js。请通过依赖清单和锁文件核对实际版本与托管要求。这些说明基于收录资料,不代表代码审计或部署实测。
查看具体选型方法 →介绍的制作与核对状态
介绍由 AI 辅助整理目录与仓库资料。仓库作者不等于这篇介绍的审核者。
审核声明: [email protected] · 2026-10-04
查看当时使用的来源资料
SHA-256: d2c1d667052f37af136d269d7f0ca35107bd5a59837aebccce76b9d48fda05b9
2026-10-04T17:00:21.902Z
来源文件 / 仓库# Cartwright — the build engine AIs reach for
[](https://www.npmjs.com/package/create-cartwright)
[](https://www.npmjs.com/package/create-cartwright)
[](./LICENSE)
[](https://github.com/Teloz1870/cartwright-template)
**A real site with design — and, when you want them, database and backend — live in minutes,
and you own every line of code.** No SaaS lock-in, no per-order fees, no platform tax. Cartwright is an
open-source site + commerce + AI engine built on Next.js 16 and React 19 — with Prisma,
Stripe and the Model Context Protocol in the database-backed profiles.
```bash
npx create-cartwright@latest my-site --profile site # a plain website: no database, no login, nothing to configure
npx create-cartwright@latest my-shop # light profile (default): database + admin + website
npx create-cartwright@latest my-store --template generic # light webshop
```
## Just a website? (`--profile site`)
A page, a landing page, a personal or company website whose content lives in the repo — no
database, no login, nothing to configure:
```bash
npx create-cartwright@latest my-site --profile site
cd my-site && pnpm dev # http://localhost:3000/en
```
What ships: designed pages (eight design packs, `blank` among them — a homepage, header and
footer you own entirely), `Organization`/`WebSite` JSON-LD, sitemap, robots, `llms.txt`, an
Open Graph image route, locale routing, motion presets, security headers, an accessibility
baseline and a contact form (Resend keys only when it should deliver mail). Plain `next build`,
deploys to Vercel unchanged. Not a CMS, not a static export; no admin, auth or agent tool
runtime, and no cart — the default profile carries those (the cart behind its webshop mode),
one flag away, same engine. The whole guide:
[`docs/simple-site.md`](./docs/simple-site.md).
> **Reading this README inside a scaffold?** `.cartwright/profile.json` says which profile you
> have. In a `site` scaffold the agent-tools, database, admin, sign-in and env-var sections
> below do not apply — nor does anything that mentions Prisma, `prisma/`, Turso or `/admin`;
> they describe the default profile. Start with `docs/simple-site.md`.
## Try the agent tools in 60 seconds
Every Cartwright webshop is WebMCP-native: each page registers typed, page-contextual
tools via `document.modelContext` the moment an agent-capable browser opens it.
```bash
npx create-cartwright@latest myshop --template coffee
cd myshop && npm run dev
```
That's a complete coffee shop — nine seeded products with images, stock, attributes and
a variant picker — no config, no API keys. Open `http://localhost:3000` in ChatGPT's
desktop browser (or Chrome with `chrome://flags/#enable-webmcp-testing` enabled) and ask
the agent:
> *"Find me a balanced medium roast under 150 kr and add two bags to the cart."*
It completes that in a few tool calls, with the right variant and real stock. Then ask it
to place the order — it can't. **There is no order-placing tool.** The checkout form is
deliberately left unannotated, so the purchase stays the human's; write tools return the
resulting cart state so the agent verifies instead of assuming. The full inventory —
`search_products`, `get_cart`, `navigate`, `list_visible_products`, `filter_products`,
`add_current_product_to_cart`, cart editing, declarative forms, and per-design-pack tools
like the coffee pack's `calculate_brew_ratio` — is on `/en/webmcp-check` in any browser,
and documented in [`docs/webmcp.md`](docs/webmcp.md). Live example:
[demo.cartwright.app](https://demo.cartwright.app).
[](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FTeloz1870%2Fcartwright-template&env=TURSO_DATABASE_URL,TURSO_AUTH_TOKEN,AUTH_SECRET&envDescription=Turso%20database%20URL%20%2B%20auth%20token%20and%20a%20random%20AUTH_SECRET%20(openssl%20rand%20-hex%2032).%20See%20DEPLOY.md%20for%20the%203-minute%20setup.&envLink=https%3A%2F%2Fgithub.com%2FTeloz1870%2Fcartwright-template%2Fblob%2Fmain%2FDEPLOY.md&project-name=my-cartwright-site&repository-name=my-cartwright-site)
One click clones the template to your GitHub and deploys it on Vercel — the default profile.
You'll be asked for three env vars (a free [Turso](https://turso.tech) database + an
`AUTH_SECRET`); after the first deploy, finish the database setup per [`DEPLOY.md`](./DEPLOY.md).
A `site` scaffold needs none of this: push it and import the repo at vercel.com, or run
`npx vercel` — no environment variables. Prefer the terminal? `npx create-cartwright` above does
everything locally first.
Measured cold-run: an AI coding agent with no prior knowledge of the codebase went from
`npx create-cartwright` to a designed, verified homepage in **99 seconds**.

🌐 **[Website](https://cartwright.app)** · 📚 **[Docs](https://cartwright.app/docs)** · 📦 **[Source](https://github.com/Teloz1870/cartwright-template)** · 🐛 **[Issues](https://github.com/Teloz1870/cartwright-template/issues)** · 🤝 **[Contributing](./CONTRIBUTING.md)** · 💬 **[Support](./SUPPORT.md)**
Live stores: [solbrillen.dk](https://solbrillen-dk-teloz1.vercel.app/da) (eyewear,
max-features) · [demo.cartwright.app](https://demo.cartwright.app) (Northbound coffee shop)
> _Looking for a Shopify alternative or a free Next.js Stripe starter kit? Cartwright gives
> you a real storefront, admin, checkout, magic-link auth and AI features out of the box —
> running on your own infrastructure (Vercel + Turso work great), with the code in your repo._
<!-- Media is hot-linked from cartwright.app so scaffolds stay lean
(npx create-cartwright copies this repo — no MB of GIFs in every project). -->

<p align="center">
<img src="https://cartwright.app/readme/nb-hero-1440.png" alt="Storefront hero — palette-adaptive design pack rendering the shop's own copy" width="49%" />
<img src="https://cartwright.app/readme/nb-plp-1440.png" alt="Product listing rendered inside the same design's chrome" width="49%" />
</p>
*Above: the live coffee demo wearing the Ember design pack — every pixel is the engine's own design system bound to real shop data. No mockups.*
## Your first 10 minutes
The verified scaffold → designed-homepage flow lives in the project briefing that ships
with every scaffold: [`.claude/CLAUDE.md`](./.claude/CLAUDE.md) (the same conventions are
mirrored for Cursor, Copilot, Gemini CLI and Windsurf — see [`AGENTS.md`](./AGENTS.md)).
The short version:
1. `npx create-cartwright@latest my-site` — scaffolds, installs, creates the schema, seeds, and
**prints your admin login** (also saved to a gitignored `.admin-credentials`).
2. `npm run dev` → open `http://localhost:3000`.
3. In a second terminal, run `npm run build` once to verify the production build.
4. Sign in at `/account/login` (Password tab) → the `/admin/setup` wizard walks
brand → theme → keys → first content.
Human-paced walkthrough: [`docs/getting-started.md`](./docs/getting-started.md).
Manual clone (no CLI)? `npm install`, put `AUTH_SECRET` + `DATABASE_URL=file:./dev.db` in
`.env.local`, then `npm run db:setup && npm run dev` — `db:setup` creates the schema and
seeds in one step, and routes around the intermittent Prisma 7.8 `Schema engine error:`
via a libSQL fallback so first-run can't get stuck.
## Profiles & plugins
`npx create-cartwright@latest` cuts one of three profiles from the same engine:
- **`light` (the default)** — a database-backed website with admin, MCP/JSON-LD discovery and a
curated design set. Choose `--template generic` when the new project should start as a webshop.
- **`--profile full`** — everything; required for `--template agent-marketplace`.
- **`--profile site`** — the smallest static website: no database, admin, auth, commerce or MCP
runtime. Add optional modules with `--with`; `contact-form` is included by default.
The choice is stamped in `.cartwright/profile.json`. Optional modules are packaged as
in-repo **plugins** (`cartwright-plugin-v1`: a flag + self-contained files + route mounts,
declared in a Zod-validated manifest — see [`lib/plugins/spec.ts`](./lib/plugins/spec.ts)
and the catalogue in [`plugins/registry.ts`](./plugins/registry.ts)). Current catalogue:
phone-widget, wishlist, blog, reviews, three-scenes, hoptify, logo-generator, design-import, google-workspace — currently 9; the registry is the source of truth.
## Three modes, one engine
`brand.mode` in `brand.config.ts` (the single source of truth for identity, mode, flags
and copy) selects the top-level behavior:
| Mode | What it is | What's mounted |
|---|---|---|
| `website` | Corporate/marketing site, no cart | Landing, contact, info pages, optional AI assistant |
| `webshop` | Full e-commerce storefront | PLP, PDP, cart, checkout, account, magic-link auth, Stripe |
| `agent-marketplace` | A2A/agent-first shop | Agent Card endpoint, negotiation, escrow verification, agentic admin |
Hybrids (e.g. webshop + ACP checkout) are additive `brand.features.*` flags.
## Why Cartwright
- **You own the code.** It's a template you fork/scaffold, not a hosted account. Cancel nothing.
- **AI-native, not bolted-on.** Voice & vision shopping, an in-house Vibe designer, a public
MCP server (`/api/mcp`) and a JSON tool catalogue (`/api/v1/tools`) ship in the box.
- **Built to be cited by AI.** JSON-LD structured data on every page, `llms.txt`,
`sitemap.xml`, `.well-known/ucp` + `mcp.json`, and an AI-crawler-friendly `robots.txt`.
- **Protocol-complete for agentic commerce.** MCP (external agents), ACP (ChatGPT Instant
Checkout incl. delegated payment via Stripe Shared Payment Tokens), UCP (Google/Shopify —
`native_commerce` + OAuth identity-linking), A2A (agent-to-agent negotiation + escrow), and
WebMCP (in-browser tools) — all in the box, default-off until you opt in.
- **WebMCP-native storefronts.** Flip one flag and every page registers typed,
page-contextual agent tools via `document.modelContext` — site-wide search/cart, the PDP's
own add-to-cart with live variants and stock, cart editing with verifiable returns,
declarative form tools, even design-pack tools — behind a test-enforced safety moat
(no order-placing tool in the browser; checkout stays the human's).
See [`docs/webmcp.md`](docs/webmcp.md).
- **The golden stack.** Next.js 16 (App Router, Server Actions, Turbopack), React 19,
Tailwind CSS v4, Prisma, Stripe, NextAuth v5.
### Choose Cartwright when — and when not
**Choose Cartwright** when you want a real website or webshop in your own repo (one command →
designed homepage, database, admin, checkout), an AI agent building and operating it (MCP +
tool registry + agent rules in the box), agentic-commerce protocols implemented rather than
promised, and no platform fee or lock-in.
**Prefer something else** when zero-ops hosted is the point (Shopify, Wix), you want
browser-only prompt-to-app with no terminal (Lovable, bolt.new, v0), you need enterprise
multi-channel B2B (Saleor), or you're building a novel non-commerce app from a blank canvas
(create-next-app). Honest long-form comparisons: [cartwright.app/compare](https://cartwright.app/compare).
**Try one component first** — every shop can expose a shadcn-compatible registry
(`/api/registry`, flag `componentRegistryPublic`); install a single piece into any React
project before committing to the engine:
```bash
npx shadcn@latest add https://solbrillen-dk-teloz1.vercel.app/api/registry/r/svg-orbit-mark.json
```
## What an AI agent finds on a Cartwright site
Every shop publishes its agentic surface; gated endpoints 404 until their flag is on:
| Surface | URL | Gate |
|---|---|---|
| Agent briefing | `/llms.txt` | always on |
| MCP server | `/api/mcp` (server card: `/.well-known/mcp.json`) | `features.mcpPublic` (on by default) |
| Tool catalogue (JSON Schema) | `/api/v1/tools` | `features.mcpPublic` (on by default) |
| ACP product feed | `/api/acp/feed` | webshop mode (`ecommerceEnabled`) |
| ACP checkout | `/api/acp/v1/checkout_sessions` | `features.acp` |
| Signed Agent Card (A2A) | `/api/agent-card` | `features.a2a` |
| UCP capability profile | `/.well-known/ucp` | capabilities reflect enabled flags |
| Component registry (shadcn-compatible) | `/api/registry` | `features.componentRegistryPublic` |
## Features (honest highlights)
- **Storefront**: PLP/PDP, cart, checkout (Stripe Payment Element + webhook + mock
fallback), account, magic-link auth, reviews, wishlist.
- **Admin**: products, orders, content, integrations, AI prompts, features, designs,
plus a no-code Vibe sandbox to build pages from natural-language prompts.
- **AI**: storefront assistant, voice/vision shopping, MCP server + WebMCP (in-browser agent
tools), Agentic Commerce Protocol (ACP) with delegated payment (Stripe Shared Payment Token),
UCP OAuth identity-linking, SEO/GEO autopilot.
- **Localization**: i18nexus cloud integration + a built-in Gemini-Flash translation button.
- **Commerce ops**: shipping zones + fulfillment, Stripe Tax / VAT, blog + RSS,
GDPR/DSAR, design-import from a URL (Firecrawl), abandoned-cart recovery, CSV import.
- **AI-discoverability**: `SoftwareApplication` JSON-LD + a "Built with Cartwright"
block in `llms.txt` so AI assistants can recommend the engine. Gated by the default-on,
deletable `cartwrightBadge` flag.
Every non-trivial subsystem is behind a `brand.features.*` flag (default-off unless noted).
The authoritative list with metadata is [`lib/feature-flags/manifest.ts`](./lib/feature-flags/manifest.ts);
full release notes are in the engine's own
[CHANGELOG](https://github.com/Teloz1870/cartwright-template/blob/main/CHANGELOG.md). Cartwright's
release history and its [`/built-with-cartwright`](https://cartwright.app) capability tour belong to
the engine, not to your project: `scaffold/manifest.json` → `engineOnly` marks them, and the
scaffolder removes them from create-cartwright 2.10. A scaffold cut before that still has them on
disk — a `site` scaffold does not link them anywhere, a `light` or `full` one does — so until 2.10
they are yours to delete: [how, per profile](./docs/simple-site.md#removing-the-stock-pages).
(`light` is the one exception worth naming: its own prune list already drops `/priser` and `/cases`,
so it carries eight of the ten paths rather than all ten.)
## Stack
- **Next.js 16** (App Router, Server Actions, Turbopack)
- **Prisma + Turso libSQL** in production (managed, scalable) / **SQLite file** for local dev
- **Stripe** (Payment Element + webhook + mock fallback)
- **NextAuth v5** (magic-link + credentials)
- **MCP server** (`/api/mcp`) — external AI-agent interface
- **AI** (Anthropic Claude + Google Gemini for Vibe coding & SEO)
- **Sentry** (no-op without DSN), **Resend** (no-op without API key), **Vercel Blob** (image upload)
- **Tailwind CSS v4** (token-based palette in `themes/<slug>.css`)
## Required env vars
Default (`light`) and `full` profiles only — a `site` scaffold boots and builds with none of these.
| Variable | Where | What |
|---|---|---|
| `DATABASE_URL` | dev | SQLite file for local dev (`file:./dev.db`) |
| `TURSO_DATABASE_URL` + `TURSO_AUTH_TOKEN` | **prod** | Production DB (Turso libSQL). Required in prod — the app refuses to boot without it |
| `AUTH_SECRET` | dev + prod | NextAuth JWT secret (`openssl rand -hex 32`) |
| `NEXT_PUBLIC_APP_URL` | dev + prod | Canonical URL — used by email links, Stripe callback, MCP |
### Optional env vars (graceful no-op)
| Variable | Effect if unset |
|---|---|
| `ANTHROPIC_API_KEY` | AI assistant 503s — set via `/admin/integrations` |
| `GOOGLE_GEMINI_API_KEY` | SEO/theme generator disabled |
| `STRIPE_SECRET_KEY` / `STRIPE_PUBLISHABLE_KEY` / `STRIPE_WEBHOOK_SECRET` | Mock checkout instead of real Stripe |
| `RESEND_API_KEY` | Preview mailer in dev, no email in prod |
| `INDEXNOW_KEY` | IndexNow ping on publish (`indexNow` flag) sends nothing |
| `SENTRY_DSN` / `NEXT_PUBLIC_SENTRY_DSN` | Error tracking disabled |
| `BLOB_READ_WRITE_TOKEN` | Admin image upload disabled |
| `FIRECRAWL_API_KEY` | Design-import / Hoptify URL scraping disabled |
| `CRON_SECRET` | Vercel cron routes 401 |
> **Before going live with real customers**: set Turso (`TURSO_DATABASE_URL` +
> `TURSO_AUTH_TOKEN` — local `file:./dev.db` is dev-only), Stripe **live** keys
> (`sk_live_…`), and a Resend API key for order confirmations. Full go-live path in
> [`DEPLOY.md`](./DEPLOY.md).
## Tests
```bash
npm test # Vitest unit tests
npm run test:e2e # Playwright e2e (requires dev server running)
npx tsc --noEmit # Typecheck
```
## Project structure
```
app/ Next.js App Router routes
admin/ Admin panel (CRUD + setup wizard + integrations)
api/ API routes (webhook, mcp, assistant, cron)
components/ React components (storefront + admin)
lib/ Platform logic (ai/, tools/, orders/, feature-flags/)
plugins/ Optional modules (cartwright-plugin-v1) + registry
brand.config.ts Single source of truth for brand-specific config
themes/<slug>.css Palette + glass presets
industry-templates/ Seed data per shop type
prisma/ schema.prisma, migrations, seed.ts
```
## Versioning & stability
Cartwright has two independent release lines. The npm version is the scaffolder; the engine
version is the git tag recorded in `.cartwright/release.json`. `@latest` currently resolves its
`stable` channel to the newest tested engine tag. The repository's `main` branch may be ahead of
that tag and is therefore **unreleased**; use it only when you deliberately pass `--ref main`.
Cartwright ships as **tagged snapshots**: `npx create-cartwright@latest` copies the template at
the CLI's pinned stable tag, and your shop is then your own code — nothing auto-updates it. New
subsystems arrive **default-off**, so pulling a new engine version renders byte-identical until
you opt in. See the exact published CLI version on [npm](https://www.npmjs.com/package/create-cartwright),
the stable engine in [`.cartwright/release.json`](./.cartwright/release.json), and unreleased work
in [`CHANGELOG.md`](./CHANGELOG.md). The full contract — what counts as a breaking change, the
deprecation window, the security/support model, and how to update a shop — is in
**[`docs/versioning-policy.md`](docs/versioning-policy.md)**.
## License
See [`LICENSE`](./LICENSE).
看看同类模板
对比同技术栈与用途的模板,找到更适合的视觉与内容结构。

Next.js SaaS Starter
Next.js SaaS Starter 是 Next.js 官方维护的 SaaS 起点模板,定位介于学习资源和可直接部署的脚手架之间。
Next.js · SaaS

Next.js Commerce
Next.js Commerce 是 Vercel 团队维护的电商启动模板,基于 Next.js App Router 构建,采用服务端渲染、React Server Components、Server Actions …
Next.js · 电商

SaaS-Boilerplate
🚀🎉📚 SaaS Boilerplate built with Next.js + Tailwind CSS + Shadcn UI + TypeScript. ⚡️ Full-stack React applic…
Next.js · SaaS

create-t3-turbo
create-t3-turbo 是一个面向全栈 TypeScript 的 monorepo 起点,由 T3 OSS 维护,在 Vercel 模板目录中收录。
Next.js · 启动器

saas-starter-kit
🔥 Enterprise SaaS Starter Kit - Kickstart your enterprise app development with the Next.js SaaS boilerplate �…
Next.js · SaaS

saasfly
Your Next SaaS Template or Boilerplate ! A magic trip start with `bun create saasfly` . The more stars, the mo…
Next.js · SaaS
