Ecommerce · React
Furniture studio
Minimal furniture store with solid-wood pieces, materials story, room gallery and white-glove delivery.

What you get
A storefront for a small furniture studio: an editorial hero, seating, tables, storage and lighting with prices, a materials section, a gallery of real rooms, delivery and returns, customer quotes and a showroom newsletter. All content lives in src/site.ts.
Files
Exactly what is copied into a new project: 13 files, nothing generated.
Explorer 13
/** The shape of src/site.ts: every word, colour and section of this site lives there. */import type { IconName } from "./Icon"; export type Link = { label: string; href: string }; export type Visual = | { type: "tiles"; tones: string[]; caption?: string } | { type: "mock"; title: string; rows: { label: string; value: string; tone?: string }[]; footer?: string } | { type: "card"; tone: string; title: string; lines: string[] } | { type: "none" }; export type Section = | { kind: "hero"; variant: "split" | "center" | "editorial"; eyebrow?: string; title: string; text: string; primary: Link; secondary?: Link; visual: Visual; note?: string } | { kind: "features"; id?: string; eyebrow?: string; title: string; text?: string; columns?: 2 | 3 | 4; items: { title: string; text: string; icon: IconName }[] } | { kind: "split"; id?: string; eyebrow?: string; title: string; text: string; bullets: string[]; visual: Visual; reverse?: boolean } | { kind: "menu"; id?: string; eyebrow?: string; title: string; text?: string; groups: { name: string; items: { name: string; text?: string; price: string }[] }[] } | { kind: "pricing"; id?: string; eyebrow?: string; title: string; text?: string; plans: { name: string; price: string; period?: string; text: string; features: string[]; featured?: boolean; cta: Link }[] } | { kind: "gallery"; id?: string; eyebrow?: string; title: string; text?: string; items: { title: string; caption?: string; tone: string }[] } | { kind: "projects"; id?: string; eyebrow?: string; title: string; items: { title: string; tag: string; year: string; tone: string }[] } | { kind: "quotes"; id?: string; eyebrow?: string; title: string; items: { quote: string; name: string; role: string }[] } | { kind: "stats"; id?: string; items: { value: string; label: string }[] } | { kind: "steps"; id?: string; eyebrow?: string; title: string; items: { title: string; text: string }[] } | { kind: "team"; id?: string; eyebrow?: string; title: string; items: { name: string; role: string; tone: string }[] } | { kind: "timeline"; id?: string; eyebrow?: string; title: string; items: { period: string; title: string; text: string }[] } | { kind: "faq"; id?: string; eyebrow?: string; title: string; items: { q: string; a: string }[] } | { kind: "products"; id?: string; eyebrow?: string; title: string; text?: string; currency: string; items: { name: string; price: number; category: string; tone: string; text: string; badge?: string }[] } | { kind: "hours"; id?: string; eyebrow?: string; title: string; text?: string; rows: { day: string; time: string }[]; address: string; phone?: string; email?: string } | { kind: "cta"; id?: string; title: string; text: string; primary: Link; secondary?: Link } | { kind: "contact"; id?: string; eyebrow?: string; title: string; text: string; fields: ("name" | "email" | "phone" | "date" | "guests" | "company" | "message")[]; button: string }; export type Site = { brand: string; nav: Link[]; navCta?: Link; sections: Section[]; footer: { text: string; columns?: { title: string; links: string[] }[]; legal: string };};Remix
Remix this template
Describe what to change and the agent starts from Furniture studio's files. The box is already started for you: finish “Start from Furniture studio and …”
Dependencies
Documented from the template's package.json. The runtime has a prebuilt dependency set for Vite + React + TypeScript, so installs are fast.
- 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
- Entry route
- /
Projects run in an isolated sandbox with a live preview. Read the projects documentation for settings, snapshots and deployment.
Keep browsing
All templates
Coffee roaster shop
Dark storefront for a specialty roaster with single origins, a subscription, brew gear and shipping info.
- Featured

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

Sneaker store
Dark sneaker storefront with a filterable catalog, a resole service, drop sign-ups and a working cart.
Build on Furniture studio
Create a free account, start from this template, and ask the AI agent to turn it into your app.