A modern fullstack monorepo boilerplate built with:
- TypeScript as the language
- Next.js for the frontend
- Node.js + Express for the backend
- PostgreSQL as the database
project-root/
├── client/ # Next.js frontend
│ ├── .next/
│ ├── app/
| ├── components/
| ├── hooks/
| ├── lib/
| ├── public/
| ├── styles/
| ├── .env
| ├── middleware.ts
| ├── next.config.ts
| ├── tsconfig.json
│ └── package.json
│
├── server/ # Node.js backend (Express + Prisma)
│ ├── src/
| | ├── controllers/
│ │ ├── exceptions/
│ │ ├── middlewares/
│ │ ├── routes/
│ │ ├── schema/
│ │ ├── services/
| | ├── types/
| | ├── utils/
│ │ └── server.ts
│ ├── prisma/
│ │ └── schema.prisma
| ├── .env
| ├── nodemon.json
| ├── tsconfig.json
│ └── package.json
│
├── shared/ # Shared logic (types, utils, constants, etc.)
│ ├── src/
│ │ ├── types/
│ │ └── utils/
│ │ └── api/
│ ├── package.json
│ └── tsconfig.json
│
└── package.json # Root-level scripts & workspace config
└── tsconfig.json
| Layer | Technology |
|---|---|
| Frontend | Next.js (App Router) |
| Backend | Node.js + Express + Prisma ORM |
| Database | PostgreSQL |
| Language | TypeScript (NodeNext) |
| Package Manager | npm (workspaces) |
| Dev Tools | concurrently, ts-node-dev |
git clone https://github.com/Donavfulish/AutionWeb_FinalProject_PTUDW.git
cd project-nameAt the project root:
npm installThis installs dependencies for client, server, and shared automatically (thanks to npm workspaces).
Run both client and server concurrently from the root:
npm run dev- 🖥️ Server runs at http://localhost:8080
- 🌐 Client runs at http://localhost:3000
| Command | Description |
|---|---|
npm run dev |
Run both client & server concurrently |
npm run dev:client |
Run only the Next.js app |
npm run dev:server |
Run only the Express backend |
npm run build --workspace client |
Build frontend |
npm run build --workspace server |
Build backend |
npm run build --workspace shared |
Build shared library |
- Fork this repo
- Create your branch (
git checkout -b feature/my-feature) - Commit changes (
git commit -m "feat: add new feature") - Push to branch (
git push origin feature/my-feature) - Open a Pull Request 🎉
- Do not pull to main !!!!
MIT © Do Van Ha