Station 00
The claim

Open source · MIT · Next.js

AI runs the shop. You keep the keys.

Cartwright is an open-source Next.js engine that builds a real website in one command — a plain site with no database, or a shop with an AI-native admin built for trusted operation: the model proposes, the shop shows you exactly what would change, and nothing is written until you release it.

Admin · liveAwaiting you
Agent proposes

“Drop winter frames 15% until Sunday.”

41 products
DKK 84 320 → 71 672
token: single use · 5 min
ReleaseDiscard

An illustration, not a mockup of a feature. Every one of Cartwright's 25 confirmation-gated write tools stops here: it returns a preview instead of executing, and runs only against a single-use token the server issued.

$npx create-cartwright@latest my-shop

Just a page or a plain website? No database, no login, nothing to configure: npx create-cartwright@latest my-site --profile site How it works →

Either door, the same rule: You own the front — pick one of the shipped design packs, start from the blank canvas and rewrite its homepage, header and footer freely, or write your own pack; SEO, the sitemap, share cards and locale routing keep working around whatever you render, and in the default profile so do the database, the admin and the AI tools. Choose your path →

Station 01
One write,
end to end

Four gates, in order.

Every tool call takes the same path, whether it came from the admin, your terminal, or a customer talking to the storefront. A gate that is already open proves nothing, so the second one is where the product actually lives.

Request

products.update

The API key's scopes are checked before the tool is even resolved. Out of scope, out of luck.

Pending

plan + token

The tool returns the exact diff instead of executing it. Nothing has been written.

Write

41 rows · price

A person released it. The token is single-use and spends itself here.

Audited

actor · diff · revert

Recorded with who asked, what changed, and a revert that actually works.

Gate two is the product
Station 02
Operators

Everyone operates the same shop.

A human, a coding agent, and a shopping agent all work the same engine — one database, one audit log, one repo that belongs to you.

Door one

You, in a browser

A full admin — products, orders, content, design, integrations — plus an AI copilot that plans first and asks before it writes. Run the business end to end without a vendor dashboard in sight.

/admin

Door two

Your AI coding agent, in a terminal

Agent rules files ship in the repo, and 87 REST tools let an agent design, stock, translate, and reconfigure the shop — destructive operations require explicit confirmation, and every write lands in the audit trail.

POST /api/v1/tools

Door three

Shopping agents, over the wire

llms.txt, JSON-LD on every citable page, a product feed, a built-in MCP server, ACP checkout endpoints — and WebMCP tools in the page itself, so browser agents act through a real API instead of the DOM.

/api/mcp · /api/acp · document.modelContext

All three doors open into the same owned codebase — MIT-licensed, in your GitHub, on your infrastructure. Leave anytime — it's your repo. Don't need operators at all? --profile site leaves the database, admin and agent tools out. You own the front — pick one of the shipped design packs, start from the blank canvas and rewrite its homepage, header and footer freely, or write your own pack; SEO, the sitemap, share cards and locale routing keep working around whatever you render, and in the default profile so do the database, the admin and the AI tools.

Station 03
Receipts

Every claim has a receipt.

SurfaceShipping proofGuardrailWhat it means for you
AI admin37 allowlisted tools25 require confirmation · every call auditedThe machine cannot silently alter the shop.
MCP87 tools · 21 scopesHashed keys, expiry, per-tool scope checksYour agent can operate the shop, not merely talk about it.
WebMCP13 page-contextual browser toolstest-enforced moat — no order-placing tool in the browserA browser agent acts through a real API, not the DOM.
ACPCheckout sessions + product feedDeterministic totals, idempotent completionBuyer agents can complete real commerce.
Discovery/llms.txt + JSON-LDGenerated from shop data, never hand-writtenMachines understand the store without scraping it.
VoiceGemini Live, server-dispatched toolsEphemeral tokens · session and daily capsCustomers can shop by speaking, under the same gates.
Local AIOllama providerCapability-tiered per model; unknown models read-onlySensitive workflows need not leave the machine.
Station 04
What you keep

The first commit is the exit plan.

Cartwright scaffolds into a repository you own and then gets out of the way. There is no control plane holding your storefront up, and no per-order cut on the way through.

Stop using Cartwright services tomorrow and the deployed shop keeps running — because it was never running on ours.

What you keep, in detail →
receipt
repository
customer-owned
database
customer-chosen
infrastructure
customer-controlled
license
MIT
platform fee
0%
Station 05
Built with
Cartwright
Station 06
Honest answers

Honest answers, no marketing-speak.

If your question is not here, open a GitHub issue. We will add it.

Yes. npx create-cartwright@latest my-site --profile site scaffolds a plain website: designed pages (8 design packs, blank among them), JSON-LD, sitemap, llms.txt, an Open Graph image route, locale routing and a contact form — in a plain Next.js repo with 20 runtime dependencies and zero required environment variables. It builds with next build and deploys to Vercel unchanged. No admin, database, auth or agent tools; those are the default profile, one flag away, same engine. Measured: ~22 s to scaffold and install, ~27 s to build, ~2 s to a rendered homepage (provenance on the guide). Build a plain website →
Yes — all of it. The engine template repo, cartwright-template, is public and MIT-licensed, and so are the CLI (create-cartwright) and this site. The CLI scaffolds from the public template repo, so no token is required — and the code it gives you is yours to fork, modify, and ship.
No platform fees. You pay the underlying services you choose — Vercel hosting, Turso or Postgres, Stripe’s standard processing, Anthropic/Gemini if you use AI. There is no per-order tax going to cartwright. Optional paid tiers (Plus $49/mo, Cloud $199/mo, Enterprise) layer on hosted services, support, and Pro tooling — see pricing for the full breakdown.
Three origins, each with its own door. From Shopify: scaffold with --profile full and use the Hoptify import at /admin/hoptify — palette and products from the product URLs you list (Firecrawl key + an AI key); pages and variants by hand. From any URL: the default profile's content.import_site crawls a site and lands pages and posts as drafts you review (siteImport flag, Firecrawl key; services land in an admin table with no public page today — reclassify them as pages). From WooCommerce: product CSV import (simple products) plus the URL import today; a dedicated WooCommerce importer is planned, not built. Old URLs keep their rankings through admin-managed redirects — exact paths, one at a time, and they need Upstash Redis. Cartwright never runs on WordPress hosting — it replaces the site and imports from it. Orders and customers never move. Choose your path works the five cases through.
Medusa and Saleor are commerce engines you connect to a frontend. cartwright is a full shop you own end-to-end. next-forge is a SaaS starter — cartwright is the same opinionated spine, but for commerce specifically, with AI baked in.
You need to read TypeScript and have run Next.js dev once. The setup wizard handles every secret through a UI, so you do not edit env files unless you want to. Anything past “set up your shop” is normal Next.js work.
The admin ships with agentic helpers — drafting product copy, generating SEO metadata, answering customer questions in the storefront chat, and exposing a /api/mcp endpoint so external agents can act on the shop with tools you define. The Plus roadmap adds MCP integrations for Klaviyo, HubSpot, Slack, Zapier, Airtable, Notion, and four others so the agent can act on them directly — see integrations.
Yes — every store ships a typed, rate-limited public surface for agents (OpenAPI, MCP, markdown negotiation, honest discovery), and you can verify it yourself: scan any store at is-agentic.com and compare with the live scorecard for our demo store. How it works: agent readiness.
GitHub Issues — on cartwright-template for the engine, or cartwright-app for docs/CLI bugs. Paid setup help is available — email hello@cartwright.app.
When the template contract, upgrade guidance, and release gates are stable enough that minor updates should not break your fork. We do not publish a date before those conditions are true.
Station 07
Start

One line. A shop in five minutes — a website in one.

Works on macOS, Linux, and Windows (via WSL). Node 22+ required. No GitHub token, no marketplace install — just npm.

$npx create-cartwright@latest my-shop

npx create-cartwright@latest my-site --profile site — a plain website, no database, no login: ~22 s to scaffold and install, ~27 s to build, ~2 s to a rendered homepage (measured; provenance on the guide).

pnpm create cartwrightnpm create cartwright@latestbunx create-cartwright

Ship a real shop this week.

Scaffold cartwright, drop in your Stripe keys, and have a checkout flow up before lunch. No platform contract, no per-order fee — and the repo is yours from the first commit.