Skip to content
Framework: Vite + React + TypeScriptDifficulty: intermediateFeatured

Ecommerce storefront

A product catalog with category filters and search, product detail view, and a cart kept in local state.

Catalog, product detail and cart screens driven by a typed in-memory product list. The cart is persisted to localStorage through a small hook, quantities can be adjusted inline, and the checkout form is explicitly a placeholder: it records the order locally and tells you where to plug in Stripe or Razorpay on the server.

  • react
  • ecommerce
  • cart
  • catalog
  • tailwind

This preview is the template's actual file tree and source code — exactly what is copied into a new project. Codexa does not publish screenshots or mock-ups of templates; run the project to see it rendered.

Files13 files

src/products.ts17 lines
export type Product = { id: string; name: string; price: number; category: "Audio" | "Home" | "Outdoor"; description: string };

/** Replace with a fetch from your catalog API. Prices are in whole currency units. */
export const products: Product[] = [
  { id: "p1", name: "Studio headphones", price: 129, category: "Audio", description: "Closed-back headphones with a flat response for mixing." },
  { id: "p2", name: "Desk speaker", price: 89, category: "Audio", description: "Compact powered speaker with USB-C input." },
  { id: "p3", name: "Ceramic mug", price: 18, category: "Home", description: "Hand-glazed stoneware mug, 350 ml." },
  { id: "p4", name: "Linen throw", price: 64, category: "Home", description: "Stonewashed linen throw blanket." },
  { id: "p5", name: "Trail bottle", price: 24, category: "Outdoor", description: "Insulated steel bottle, 750 ml." },
  { id: "p6", name: "Packable jacket", price: 110, category: "Outdoor", description: "Lightweight windproof shell that packs into its pocket." },
];

export const categories = ["All", "Audio", "Home", "Outdoor"] as const;

export function formatPrice(n: number) {
  return new Intl.NumberFormat(undefined, { style: "currency", currency: "USD" }).format(n);
}

Dependencies

Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.

PackageVersion
react^19.1.0
react-dom^19.1.0
vite^6.3.0
@vitejs/plugin-react^4.4.0
tailwindcss^4.1.0
@tailwindcss/vite^4.1.0
typescript^5.8.0

How it runs

Framework
Vite + React + TypeScript
Dev command
npm run dev
Build command
npm run build
Output directory
dist
Port
5173
Opens at
/
Difficulty
intermediate

Projects run in an isolated sandbox with a live preview. Read the projects documentation for details on settings, snapshots and deployment.

Need the raw data? GET /api/v1/templates/vite-react-storefront returns this template with its files.

Build on Ecommerce storefront

Create a free account, start from this template, and ask the AI agent to turn it into your app.