Prood
Getting Started

Overview

Set up the Prood monorepo and run all applications locally.

This section walks you through installing the monorepo, configuring environment variables, seeding the database, and running every application in development.

Prerequisites

ToolVersion
Node.js24 or later
pnpm10
Neon PostgresA database URL (local Docker or Neon cloud)

Optional for full checkout flows:

  • Upstash Redis — checkout session storage
  • Stripe (or Easypay / Ifthenpay) — payment provider keys

Quick install

git clone <your-repo-url>
cd prood-commerce-platform
pnpm install
cp .env.example .env.local
pnpm env:link
pnpm db:setup
pnpm dev

After pnpm dev, Turbo starts all apps:

What db:setup does

The root script runs three steps:

  1. pnpm db:migrate — Applies the @prood/platform Drizzle schema, enables row-level security (applyTenantIsolation), and seeds a demo store tagged with org_demo.
  2. pnpm db:auth — Creates Better Auth tables (user, session, account, organization, etc.) used by storefront, dashboard, and API.
  3. pnpm db:seed-auth — Seeds the org_demo organization and an admin user from ADMIN_EMAIL / ADMIN_PASSWORD when those env vars are set.

Set DEFAULT_TENANT_ORG_ID=org_demo in .env.local (the default in .env.example) so the storefront resolves the seeded catalog on localhost.

Shared environment

All apps read from a single root .env.local. Run pnpm env:link once to symlink apps/*/.env.local → root .env.local. This avoids drift between apps.

Documentation map

Default demo credentials

After seeding, the platform creates an admin user if ADMIN_EMAIL and ADMIN_PASSWORD are set in .env.local. Use these to sign in to the dashboard at :3002.

The seeded catalog is scoped to DEFAULT_TENANT_ORG_ID (default org_demo). The storefront serves this store when no custom domain is configured.

On this page