Run it locally

Run it locally

For contributors. Set up the Prood monorepo and run every application on your machine.

This section is for people working on Prood's source. It walks you through installing the monorepo, configuring environment variables, seeding the database, and running every application in development. Opening a store on Prood needs none of this: start with Get started.

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) — a test account. Keys are entered per store in the dashboard, under Integrations

Quick install

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

After pnpm dev, Turbo starts all apps:

Monorepo applications

AppPortPurpose
storefront3000Customer-facing store: catalog, cart, checkout redirect, account
web3001Marketing site (prood.com)
dashboard3002Merchant admin: products, orders, integrations, domains, team
docs3003This documentation site (Fumadocs + OpenAPI)
checkout3004Hosted payment app: Stripe, Easypay, Ifthenpay
api3005Commerce REST API (/v1/*), MCP server, Agent Auth

Database scripts

  1. pnpm db:migrate — Applies the versioned migrations in packages/platform/drizzle with drizzle-kit migrate: the commerce tables, the Better Auth tables (user, session, account, organization, agent auth, tenant_domain, integration_config), the prood_app role and the row-level-security policies. Already-applied migrations are skipped, so re-running it is a no-op.
  2. pnpm db:seed — Seeds the demo store: the org_demo organization (slug prood-demo), European countries, the demo catalog in EUR, and an admin user from ADMIN_EMAIL / ADMIN_PASSWORD when those env vars are set. Idempotent.

The storefront resolves the demo store from its host: open http://prood-demo.localhost:3000.

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 belongs to the org_demo organization. The storefront serves it at prood-demo.localhost:3000 (the {slug}.{NEXT_PUBLIC_PLATFORM_DOMAIN} host).