A real-time, robust, and mobile-first auction platform built as a monorepo.
- Frontend: Next.js 13+ (App Router), React Hook Form, Zod, Tailwind CSS, Shadcn UI
- Backend: NestJS, Socket.io, Postgres (Drizzle ORM)
- Shared: Shared TS DTOs, Zod schemas, and enums between client and server
- Infrastructure: Docker Compose (Postgres, Redis)
-
Prerequisites
- Node.js >= 20.11.0
- pnpm >= 9.0.0
- Docker Desktop (for local DB/Redis)
-
Installation Run the bootstrap script to install dependencies and link the monorepo:
pnpm run bootstrap
-
Infrastructure Setup Start the local database and Redis containers:
pnpm run infra:up
-
Environment Variables Copy the example environment files for both API and Web packages:
cp apps/api/.env.example apps/api/.env cp apps/web/.env.example apps/web/.env
See ENV_DOCUMENTATION.md for details.
-
Development Server Start both the Next.js frontend and NestJS backend concurrently:
pnpm run dev
- Typecheck:
pnpm run typecheck - Lint:
pnpm run lint - Format:
pnpm run format
- Web (Vercel): The frontend (
apps/web) is fully optimized for Vercel. EnsureNEXT_PUBLIC_API_URLis configured to point to the production API. - API (Railway / Render / AWS): The backend (
apps/api) requires a continuous Node.js runtime and access to the production Postgres database and Redis cache.