A full-stack monorepo project built with Turborepo, integrating:
| Layer | Tech |
|---|---|
| Frontend | Next.js 14 (App Router), Redux, Firebase Auth |
| Backend | Express.js, Firebase Admin SDK |
| Database | Firestore (Emulator) |
| Auth | Firebase Authentication |
| Infra | Turborepo, Firebase Emulator Suite |
- Node.js v20+ (recommended v22)
- npm v9+
Clone and install dependencies:
git clone https://github.com/ngrhadi/TT-turborepo.git
cd TT-turborepo
npm installCopy and fill the following .env.template files:
apps/backend-repo/.env.template → .env
apps/frontend-repo/.env.template → .env
apps/backend-repo/src/config/firebaseServiceAccountKey.json → service account keyMake sure you provide valid Firebase project config and service account credentials if needed.
Run Firestore, Auth, and Functions emulators locally:
npm run serveand you can access UI firebase emulator in http://127.0.0.1:3001
From the root of the repo:
npm run devThis runs both frontend and backend using Turborepo.
From the root of the repo:
npm run servenpm run start📦 root
├── apps/
│ ├── backend-repo/ → Express.js app
│ └── frontend-repo/ → Next.js 14 app (v14+ with App Router)
├── packages/ → Shared Firebase functions (used in emulator)
├── firebase.json → Firebase Emulator config
└── turbo.json → Turborepo configuration