A modern, fully-featured e-commerce web application built with React, TanStack Router, and Supabase.
🚧 WORK IN PROGRESS - This project is currently under active development.
- 🛒 Complete shopping cart functionality
- 💳 Stripe payment integration
- 👤 User authentication with Supabase
- 📦 Order tracking and management
- 📱 Responsive design using Tailwind CSS
- 🔍 Product search and filtering
- 🛍️ Category navigation
- 🔐 Address management
- Frontend Framework: TanStack Start
- Routing: TanStack Router
- State Management: Zustand
- Data Fetching: TanStack Query (React Query)
- Form Management: React Hook Form with Zod validation
- Styling: Tailwind CSS with shadcn/ui components
- Authentication: Supabase Auth
- Database: PostgreSQL (via Supabase)
- Payment Processing: Stripe
- Build Tool: Vite via Vinxi
- Node.js 18+ (recommended 20+)
- pnpm
- Supabase account
- Stripe account
Create a .env file in the root directory with the following variables:
# Supabase
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
# Stripe
VITE_STRIPE_PUBLISHABLE_KEY=your_stripe_publishable_key
# API (if using a separate Express backend)
VITE_EXPRESS_API_URL=http://localhost
VITE_EXPRESS_API_PORT=3001
-
Clone the repository
git clone https://github.com/yourusername/tanstack-ecommerce-client.git cd tanstack-ecommerce-client -
Install dependencies
pnpm install
-
Start the development server
pnpm dev
-
Open http://localhost:3000 in your browser
The project uses Supabase as its database provider. The schema is defined in schema.sql file.
- Create a new Supabase project
- Execute the SQL in
schema.sqlin the Supabase SQL editor - Configure Row Level Security (RLS) policies as specified in the schema file
- Update your
.envfile with the Supabase URL and anon key
This project uses Stripe for payment processing:
- Create a Stripe account
- Get your publishable key from the Stripe dashboard
- Add the key to your
.envfile asVITE_STRIPE_PUBLISHABLE_KEY
/src/components- React components/src/routes- TanStack Router route components/src/hooks- Custom React hooks/src/utils- Utility functions/src/types- TypeScript type definitions/src/stores- Zustand state stores/src/lib- Shared libraries and API clients
pnpm dev- Start the development serverpnpm build- Build the application for productionpnpm start- Serve the production build
- Build the application:
pnpm build - Deploy the
/distdirectory to your hosting provider
MIT