Full-Stack-Boilerplate / Starter für neue Projekte: produktionsnahe Patterns für ein DDD/Hexagonal-Backend und eine Admin-UI, sofort lauffähig und end-to-end verdrahtet.
apps/backend— NestJS-API: DDD + Hexagonal (Ports & Adapters), CQRS, TypeORM (SQLite dev / Postgres prod) + Migrations, JWT + RBAC mit automatischer Permission-Discovery, Swagger/OpenAPI.apps/frontend— Next.js Admin-Dashboard (shadcn/ui, Tailwind), an das Backend angebunden: Login (JWT), Auth-Guard-Middleware, sowie User- und Rollen-/Permission-Verwaltung (anlegen/ändern/löschen; Admin geschützt).
Beide Apps sind autark — eigene package.json, Dependencies und Build,
kein Workspace-Verbund, kein shared-Package.
admin-kit/
├── apps/
│ ├── backend/ # NestJS-API → Port 3000, Swagger /docs
│ └── frontend/ # Next.js + shadcn → Port 3001
├── .github/workflows/ci.yml # CI: Backend- + Frontend-Job
└── README.md
Backend (Terminal 1):
cd apps/backend
npm install && cp .env.example .env
npm run migration:run # Schema anlegen (Dev: SQLite)
npm run start:dev # API http://localhost:3000/api/v1 · Docs /docsFrontend (Terminal 2):
cd apps/frontend
npm install && cp .env.example .env
npm run dev # http://localhost:3001Einloggen mit dem beim Boot automatisch geseedeten Admin
(ADMIN_EMAIL / ADMIN_PASSWORD aus apps/backend/.env).
Der Next-Server proxyt /api/* und /docs an das Backend
(BACKEND_URL, Default http://localhost:3000) → im Browser gleiche Origin,
kein CORS. Für Produktion alternativ als zwei Container (Next braucht
seinen eigenen Node-Server).
- Repo klonen bzw. „Use this template", Projekt umbenennen,
.envsetzen. - Backend: neues Fachmodul nach der Blaupause
User/Accountanlegen (Details: apps/backend/README.md). - Frontend: shadcn-Komponenten per
npx shadcn add <name>ergänzen.
- Backend-Architektur & Konventionen: apps/backend/README.md
- Frontend & Backend-Anbindung: apps/frontend/README.md