A minimal full-stack monorepo template using pnpm workspaces.
- Frontend: React + Vite + TypeScript, with React Router for routing
- Backend: Express + TypeScript
- Database: Prisma + PostgreSQL
- Tooling: shared ESLint, Prettier, and TypeScript configs
apps/
backend/ # Express API + Prisma
frontend/ # React app (Vite)
packages/
eslint-config/
prettier-config/
typescript-config/
- Node.js 20+
- pnpm 10+
- PostgreSQL
Install dependencies from the repository root:
pnpm installCreate a backend env file at apps/backend/.env:
DATABASE_URL=postgresql://USER:PASSWORD@HOST:PORT/DB_NAME
PORT=5000Apply Prisma migrations:
pnpm --filter backend exec prisma migrate devRun the full monorepo in development mode:
pnpm devpnpm dev— run all workspacedevscriptspnpm dev:backend— run only backend in watch modepnpm dev:frontend— run only frontendpnpm build— build all workspacespnpm lint— lint all workspacespnpm format— format all workspacespnpm test— run tests where availablepnpm start— run backend production buildpnpm preview— preview frontend production build
Contributions are welcome.
- Prisma client output is generated under
apps/backend/src/db/generated/prisma/. - Shared config packages are consumed by apps via workspace dependencies.
- This repository is intended as a starting point; replace app code, add or remove dependencies with your project domain logic.