2 cases built from this template
Same prompt, different [VARIABLES]. Click one to preview it above.About this template
Marketplace Shopping App is a dense, mobile-first storefront for an invented multi-seller marketplace. It suits founders, indie makers, and small retail teams who want more than a standard product grid: shoppers can search with suggestion chips, browse categories, follow a flash sale, claim coupons, explore an endless waterfall of products, choose exact variants, and build a cart across several stores.
The visual system pairs a warm ivory canvas with deep plum text, teal actions, raspberry sale accents, and sunny coupon panels. Bricolage Grotesque gives headings a friendly voice while Inter keeps prices, stock messages, filters, and cart calculations easy to scan. Unbranded studio photography provides a consistent product world, and compact cards keep the interface lively without becoming chaotic.
The main craft is shared state. Color and size selections resolve to one SKU with its own stock level; quantities never exceed availability. Claimed coupons travel from the storefront into the cart, where each store gets its own subtotal, eligibility check, discount, and shipping calculation. Search, category filters, sale countdowns, product galleries, photo reviews, saved cart contents, and recommendation batches all work locally with sample data.
Adapt the brand, audience, featured collection, and product catalog in one content file. The layout can move from home and lifestyle goods to outdoor gear, stationery, or hobby supplies while preserving the same commerce behavior. The result feels like a working shopping app rather than a marketing page, while remaining straightforward to theme and extend. Everything ships as a static site with local assets and browser persistence; checkout is an explicit simulation, not a payment flow.
The template prompt
The live demo was built from exactly this text — nothing added. The other cases only change the values of the [VARIABLES].
# Marketplace Shopping App Build this website exactly as described below. Replace the [VARIABLES] with your own values; keep everything else. ## Brief Build a dense, polished marketplace shopping web app for [BRAND], an invented multi-store destination for [AUDIENCE]. The default content centers on [FEATURED_COLLECTION], with the promise '[TAGLINE]'. Include a discovery storefront, a complete product detail view, and a seller-grouped cart. Use fictional English products, stores, reviews, prices, stock, and promotions; make every control work against shared client-side state. - Audience: Design-conscious shoppers who enjoy discovering useful objects from independent stores, and makers or small retail teams who need a rich static marketplace interface they can adapt without backend infrastructure. - Goal: Let a visitor move from discovery to a confident simulated order: search or filter, open a product, select an in-stock color and size, add it to a multi-store cart, claim eligible coupons, and understand every discount and shipping line before reviewing the order. - Tone: Lively, warm, useful, and specific. Use concise shopping language, believable product details, transparent sample-data labels, and playful promotional moments without urgency tricks or real transaction claims. ## Stack - Framework: Vite 5 + React 18 + TypeScript - Styling: Tailwind CSS 3.4 - Libraries: lucide-react (ISC), @fontsource-variable/bricolage-grotesque (OFL), @fontsource-variable/inter (OFL) - Build: `npm run build` → static files in `dist/`. No backend, no server code, no external APIs. - Setup: - Configure Vite with base './' and sourcemap false; the production command must emit only static files to dist/. - Use hash routes for the storefront, product, and cart views; direct navigation to #/product selects the first catalog product when no product has been chosen. - Keep every product, store, category, coupon, review, navigation label, and variable-derived copy value in src/content.ts; rewrite the default copy when variable values change. - Create one shared marketplace store with React context and reducers for query, category, selected product and SKU, claimed coupons, cart lines, and recommendation batches. - Persist claimed coupons and cart lines in localStorage under the generic key marketplace-shopping-state-v1; validate stored quantities against current stock when loading. - Use Lucide icons through lucide-react and self-host both font families through the listed Fontsource packages; import only the weights and styles used. - Implement transitions with CSS and Web Animations only, with a prefers-reduced-motion override; do not add a motion or state-management dependency. - Keep the production bundle below 20 MB, use relative image paths, and do not copy src/ into dist/. ## Variables - [BRAND] — Marketplace brand (default: "Tote & Timber"). An invented two- or three-word marketplace name; derive a simple text wordmark from it. - [TAGLINE] — Storefront promise (default: "Useful things, joyfully found."). A short original sentence for the discovery header and empty states. - [AUDIENCE] — Shopper audience (default: "design-loving shoppers hunting for useful home and everyday goods"). Rewrite recommendations, category descriptions, and promotional copy for this audience. - [FEATURED_COLLECTION] — Featured collection (default: "The Weekend Edit"). Name the flash-sale and discovery story; adapt the product catalog and section copy to fit it. - [CURRENCY] — Display currency (default: "USD"). Use Intl.NumberFormat for every price and keep all calculations in integer minor units. - [CREDIT] — keep a small "Template by VibeFather" link to https://vibefather.ai/t/marketplace-shopping-app in the footer (default: yes; delete this line to remove it) The copy under Pages & Sections is written for the default values. If your values differ, rewrite every headline, paragraph, label and image for them — same length, tone and structure. Layout, colors, type and motion stay as described. Keep all copy, image paths and links in one content file (for example `src/content.ts`), keyed by section, so the content can be swapped later without touching components.
Pro template. The design, sections, motion and assets parts of this prompt are for Pro members. The live demo and DESIGN.md stay free.
Join Pro early access →DESIGN.md
The design system on its own — colors, type, spacing and motion. Apply this look to a project you already have.
---
name: "Marketplace Shopping App"
colors:
canvas: "#F7F4ED"
surface: "#FFFFFF"
ink: "#282330"
teal: "#0F766E"
raspberry: "#C73E67"
sun: "#F4C95D"
mist: "#E8E3DC"
typography:
display_and_section_headings: { family: "Bricolage Grotesque Variable", weights: [600, 700, 800] }
interface_product_data_reviews_and_body: { family: "Inter Variable", weights: [400, 500, 600, 700] }
spacing: "Use a 4 px base unit. App content max-width is 1360 px with 32 px desktop and 16 px mobile gutters. Header modules use 12–16 px gaps, product cards 12 px internal padding, major storefront modules 24 px vertical separation, and product/cart desktop columns 32 px separation. Keep touch targets at least 44×44 px."
radius: "Use 20 px for feature panels, 16 px for product and store cards, 12 px for images and inputs, and fully rounded chips only for filters, stock badges, and compact actions. Borders are 1 px Mist; shadows stay soft and shallow."
---
# Marketplace Shopping App — Design System
Apply this design system to an existing project. It describes the look and feel only; for the full site, use prompt.md.
## Colors
- **Canvas** `#F7F4ED` — Warm ivory app background and generous gaps between dense modules
- **Surface** `#FFFFFF` — Product cards, search field, cart groups, dialogs, and sticky bars
- **Ink** `#282330` — Primary text, wordmark, icons, and high-contrast outlines
- **Teal** `#0F766E` — Primary actions, selected filters, links, and stock-positive messages
- **Raspberry** `#C73E67` — Flash-sale accents, price emphasis, badges, and claimed-coupon details
- **Sun** `#F4C95D` — Coupon panels, rating stars, and small moments of promotional warmth
- **Mist** `#E8E3DC` — Dividers, disabled controls, skeletons, and subtle card borders
## Typography
- **Display and section headings** — Bricolage Grotesque Variable (OFL), weights 600/700/800. Self-host the font files.
- **Interface, product data, reviews, and body** — Inter Variable (OFL), weights 400/500/600/700. Self-host the font files.
## Spacing & shape
- Spacing: Use a 4 px base unit. App content max-width is 1360 px with 32 px desktop and 16 px mobile gutters. Header modules use 12–16 px gaps, product cards 12 px internal padding, major storefront modules 24 px vertical separation, and product/cart desktop columns 32 px separation. Keep touch targets at least 44×44 px.
- Radius: Use 20 px for feature panels, 16 px for product and store cards, 12 px for images and inputs, and fully rounded chips only for filters, stock badges, and compact actions. Borders are 1 px Mist; shadows stay soft and shallow.
## Motion
- Use 160–220 ms ease-out transitions for hover lift, chip selection, cart badges, coupon claims, image changes, and button feedback; never delay a state update for an animation.
- Route changes use a restrained 180 ms fade and 8 px vertical settle; product gallery changes crossfade without zooming the entire page.
- New waterfall batches reveal with a subtle opacity rise, the cart badge gives one small pulse, and claimed coupons show a brief checkmark sweep.
- The sale countdown updates numerically once per second without flipping or pulsing; when it reaches zero it stays at zero and shows 'Offer ended' rather than restarting.
- Under prefers-reduced-motion, remove reveals, crossfades, pulses, smooth scrolling, and nonessential transitions while preserving immediate functionality.
## Imagery
Use exactly six local, AI-generated, unbranded studio product photographs listed in assets. All share realistic catalog photography, a warm ivory set, cobalt/teal/raspberry accents, soft upper-left daylight, crisp material texture, and gentle contact shadows. Reuse a photograph only within the same product family or its genuine reviews, with CSS crops for detail views; never rename one photograph as an unrelated product. No people, faces, text, logos, packaging brands, landmarks, or recognizable commercial product designs. The first screen's flash-sale composition must prominently feature product photography, not typography alone.
## Tone
Lively, warm, useful, and specific. Use concise shopping language, believable product details, transparent sample-data labels, and playful promotional moments without urgency tricks or real transaction claims.
---
— Prompt by VibeFather · https://vibefather.ai/t/marketplace-shopping-app · CC BY-NC 4.0 (non-commercial; commercial use needs a VibeFather Pro license) · Request removal: https://vibefather.ai/takedown