Storefront templates
Six production-shape Next.js storefronts you scaffold with one command. Each one ships with cart drawer wiring, mock-seeded data, a brand-as-config layer, and pre-baked test suites, so the loop from `init` to `deploy` stays inside an afternoon.
Scaffold
# Install once (native binary, ~20ms cold start)
curl -fsSL https://cimplify.io/install | sh
cimplify init my-store --template retailThat writes a Next 16 App Router project, installs dependencies, and boots the local mock. From there, edit lib/brand.ts for content and app/globals.css for the palette; the rest of the storefront re-renders against those two files.
The six templates
| Template | Industry shape | Industry-specific surface |
|---|---|---|
bakery | Pastries, cakes, custom orders | Product modal sheet, custom-order CTA |
restaurant | Menu + takeout / dine-in | /reservations page, modifiers |
retail | Variant-heavy electronics / general | Full /products/[slug] + JSON-LD |
services | Booked appointments | /book calendar widget |
grocery | High-SKU staples | Quick-add cards, basket-first UX |
fashion | Editorial apparel | /lookbook, /size-guide, Playwright snapshots |
What every template ships with
- Next 16 App Router scaffold with
cacheComponents: true app/layout.tsxwith metadata, Organization JSON-LD, and providers wiredcomponents/providers.tsx:CimplifyProvider+CartDrawerProvider+ the SDKCartDrawerapp/cart,app/checkout,app/orders/[id],app/account/*using SDK pageslib/brand.ts: single source of truth for every visible stringapp/globals.css @theme: palette, radius, fonts in one place__tests__/{brand,cart-flow,contract}.test.ts: three-line suite wrappers- Mock seed paired to the brand via
brand.mock.seed sitemap.ts,robots.ts,llms.txtgenerated frombrand
The 60-second loop
cimplify init my-store --template retail
cd my-store
bun dev # mock + Next dev together
# edit lib/brand.ts
bun run check # typecheck + lint + brand + cart-flow + contract suitesbun dev boots the in-process Hono mock alongside Next so the full storefront (catalogue, cart, checkout) works offline. The check script runs in <15s, fast enough that an agent edits and tests in the same turn.
File layout
my-store/
├── app/
│ ├── layout.tsx
│ ├── page.tsx # home
│ ├── shop/ # CataloguePage
│ ├── products/[slug]/ # ProductPage (retail / fashion)
│ ├── cart/, checkout/, orders/[id]/
│ ├── account/ # CimplifyAccount
│ ├── about/, faq/, terms/, privacy/, …
│ └── globals.css # @theme tokens
├── components/
│ ├── providers.tsx
│ ├── header.tsx, footer.tsx, hero.tsx
│ └── cart-pill.tsx, cart-drawer.tsx
├── lib/
│ ├── brand.ts # ⭐ content
│ └── cart.ts
└── __tests__/
├── brand.test.ts # 3 lines
├── cart-flow.test.ts # 3 lines
└── contract.test.ts # 3 linesNext
-
Brand schema The full
lib/brand.tscontract -
Customizing Eject components, extend the schema