Skip to content

Marketplace as a Service is a GitHub repo that simplifies building and managing online marketplaces. It includes saved searches, dev and testing tools, and flexible configs—helping developers quickly deploy scalable, customizable marketplace solutions.

Notifications You must be signed in to change notification settings

da-troll/marketplace-as-a-service

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Marketplace as a Service

A production-grade, multi-tenant e-commerce starter kit with Stripe payments and optional marketplace capabilities.

Features

  • 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

Tech Stack

  • 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)

Quick Start

Get from clone to working site in less than 10 minutes!

See the complete Getting Started Guide for detailed setup instructions.

Prerequisites

  • Node.js 18.17.0 or higher
  • PNPM 8.0.0 or higher
  • PostgreSQL database
  • Stripe account (test mode is fine)

Installation

# 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 dev

The application will be available at http://localhost:3000.

Project Structure

/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

Available Commands

Development

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 artifacts

Testing

pnpm 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 UI

Database

pnpm 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!)

CLI Tools

pnpm gen:product      # Generate product scaffold
pnpm gen:collection   # Generate collection scaffold
pnpm brand:apply      # Apply brand configuration
pnpm brand:validate   # Validate brand.json

Configuration

Brand Configuration

All branding is managed in /packages/config/src/brand/. Update the following:

  • Colors and typography
  • Logo and favicon
  • SEO metadata
  • Email templates

Feature Flags

Enable optional features via environment variables:

  • ENABLE_MARKETPLACE_MODE="true" - Enable multi-vendor marketplace with Stripe Connect
  • ENABLE_SHOPIFY_MODE="true" - Enable headless Shopify integration

Documentation

Getting Started

Features

Development

Deployment

Package Documentation

License

MIT

Contributing

Contributions are welcome! Please read our contributing guidelines before submitting PRs.

About

Marketplace as a Service is a GitHub repo that simplifies building and managing online marketplaces. It includes saved searches, dev and testing tools, and flexible configs—helping developers quickly deploy scalable, customizable marketplace solutions.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published