Skip to content

Repository files navigation

Wood

Wood

A furniture e-commerce storefront with 3D product previews, smooth scrolling, and an admin catalog.

Wood is a React app with a shop, product detail views, cart, wishlist, and admin tools for managing products and taxonomy. Product metadata lives in Supabase; images and 3D models are served from Cloudflare R2.

Live demo: wood-place.vercel.app

Tech stack

Frontend: React, Vite, Tailwind CSS, React Three Fiber, Three.js, GSAP, Framer Motion, Lenis
Backend: Supabase, Vercel serverless functions
Storage: Cloudflare R2
Maps: MapLibre GL

Features

  • Shop, product detail, cart, and wishlist flows
  • Persistent Three.js scene for product previews
  • GSAP scroll animations and Lenis smooth scrolling
  • Route-level code splitting and shared product transitions
  • Admin dashboard for products and taxonomy
  • Supabase-backed catalog with R2 media storage

Prerequisites

Getting started

git clone https://github.com/jvchi/wood.git
cd wood
npm install

Copy .env.example to .env.local and fill in your Supabase and R2 values.

npm run dev

Open http://localhost:5173.

Build

npm run build
npm run preview

Admin catalog setup

Run supabase/admin_catalog.sql in the Supabase SQL editor before using /admin/products.

The schema creates catalog tables, upload tracking, inventory logs, public-read policies, and authenticated admin-only write policies.

Important

Admin routes require VITE_SUPABASE_URL and VITE_SUPABASE_ANON_KEY. Product assets are stored in R2, not Supabase Storage.

Note

See docs/r2-migration.md for R2 setup, migration, verification, and cleanup.

Project structure

src/
  components/          # layout, shop UI, Three.js scene, admin views
  context/             # cart, wishlist, toast, shared transitions
  hooks/               # initial load and route helpers
  lib/                 # route preloaders and utilities
api/                   # serverless handlers and R2 helpers
supabase/              # SQL schema and edge functions
docs/                  # R2 migration runbook
public/                # static assets and favicon

Local AI skills (optional)

Skills live in a private library so they do not clutter this public repo.

# after clone (requires gh auth as jvchi)
bash scripts/install-skills.sh

Installs into .agents/skills/ (gitignored). Re-run to update.

About

Furniture e-commerce with React, Three.js, Supabase, Cloudflare R2

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages