A production-grade, multi-tenant e-commerce starter kit with Stripe payments and optional marketplace capabilities.
- Single-vendor stores (default mode)
- Multi-vendor marketplaces (opt-in with Stripe Connect)
- Headless Shopify integration (optional)
- Pluggable shipping/logistics providers
- Brand-first configuration - Single source of truth for all branding
- Type-safe - Full TypeScript coverage across the monorepo
- Production-ready - Proper error handling, webhooks, and idempotency
- Frontend: Next.js 14+ (App Router), React Server Components, TypeScript, Tailwind CSS, Radix UI
- Database: PostgreSQL with Prisma ORM
- Payments: Stripe (Payments API + Connect for marketplace)
- Monorepo: Turborepo + PNPM
- Testing: Vitest (unit), Playwright (E2E)
Get from clone to working site in less than 10 minutes!
See the complete Getting Started Guide for detailed setup instructions.
- Node.js 18.17.0 or higher
- PNPM 8.0.0 or higher
- PostgreSQL database
- Stripe account (test mode is fine)
# 1. Clone and install
git clone <your-repo-url>
cd marketplace-as-a-service
pnpm install
# 2. Set up environment
cp .env.example .env
# Edit .env with your Stripe keys and database URL
# 3. Set up database
pnpm db:push
pnpm db:seed
# 4. Start development
pnpm devThe application will be available at http://localhost:3000.
/apps/web # Next.js application
/packages/ui # UI components + design tokens
/packages/config # Brand + environment configuration
/packages/commerce # Commerce domain logic
/packages/payments # Stripe core + Connect
/packages/providers # Provider abstractions
/shopify # Shopify Storefront API adapter
/logistics # Shipping provider interfaces
/storage # File storage providers
/packages/admin # Admin dashboard
/packages/emails # Transactional emails
/packages/utils # Shared utilities
/prisma # Database schema + migrations
/docs # Documentation
pnpm dev # Start development server
pnpm build # Build all packages
pnpm lint # Lint all packages
pnpm type-check # TypeScript type checking
pnpm format # Format code with Prettier
pnpm clean # Clean build artifactspnpm test # Run unit tests
pnpm test:unit # Run unit tests explicitly
pnpm test:unit:watch # Run unit tests in watch mode
pnpm test:unit:ui # Run unit tests with UI
pnpm test:e2e # Run E2E tests with Playwright
pnpm test:e2e:ui # Run E2E tests with Playwright UIpnpm db:generate # Generate Prisma client
pnpm db:push # Push schema to database
pnpm db:migrate # Run migrations
pnpm db:studio # Open Prisma Studio
pnpm db:seed # Seed demo data
pnpm db:reset # Reset database (drops all data!)pnpm gen:product # Generate product scaffold
pnpm gen:collection # Generate collection scaffold
pnpm brand:apply # Apply brand configuration
pnpm brand:validate # Validate brand.jsonAll branding is managed in /packages/config/src/brand/. Update the following:
- Colors and typography
- Logo and favicon
- SEO metadata
- Email templates
Enable optional features via environment variables:
ENABLE_MARKETPLACE_MODE="true"- Enable multi-vendor marketplace with Stripe ConnectENABLE_SHOPIFY_MODE="true"- Enable headless Shopify integration
- Getting Started Guide - 10-minute setup guide
- Demo Script - Complete demonstration of all features
- Architecture Overview - System design and structure
- Brand Configuration - Customize colors, fonts, and styling
- Marketplace Mode - Enable multi-vendor features
- Shopify Integration - Connect to Shopify
- Logistics Providers - Shipping integrations
- Testing Guide - Comprehensive testing documentation
- Roadmap - Known limitations and planned improvements
- Verification Checklist - Requirements verification
- Deployment Guide - Production deployment
- Deployment Checklist - Pre-deployment checklist
MIT
Contributions are welcome! Please read our contributing guidelines before submitting PRs.