Production-ready Next.js 16 multi-brand marketing site + admin dashboard for restaurant/event conglomerates — Feature-Sliced Design, BFF httpOnly auth, CSRF, MFA/OAuth, GDPR flows, and RBAC admin UI.
Pairs with nestjs-fsd-portfolio-template v3.0.0 (NestJS Clean Architecture API).
| Use case | What you get |
|---|---|
| Restaurant / event group | Multi-brand marketing pages + CMS admin |
| Regulated / enterprise starter | BFF cookies, CSRF, MFA, audit UI, GDPR |
| Client project kickoff | Fork, connect API, white-label in hours |
| Learning FSD + BFF patterns | Real admin — not a toy dashboard demo |
Security model: browser never stores JWT in localStorage; admin API calls go through /api/backend/* with allowlist + httpOnly session cookies.
git clone https://github.com/devTugu/nestjs-fsd-portfolio-template.git
cd nestjs-fsd-portfolio-template && npm ci && cp .env.example .env
npm run migration:run && npm run seed && npm run start:devgit clone https://github.com/devTugu/nextjs-fsd-portfolio-template.git
cd nextjs-fsd-portfolio-template && npm ci && cp .env.example .env.local.env.local:
API_INTERNAL_URL=http://localhost:3001/api/v1
NEXT_PUBLIC_BRAND_NAME=Your Company Groupnpm run devOpen http://localhost:3000 — Seed admin: [email protected] / Admin123!
Full setup: docs/GETTING-STARTED.md · Full-stack fork: docs/FORK-GUIDE.md
| Path | Description |
|---|---|
/ |
Hero + About + Brands + News + Contact CTA |
/about/us, /about/history, /about/leadership, /about/team |
About pages |
/brands, /brands/[slug] |
Restaurant/event brands |
/news, /news/[slug] |
News |
/contact |
Contact form |
Legacy redirects: /blog → /news, /projects → /brands, /pricing → /contact
| Path | Description |
|---|---|
/sign-in |
Login (BFF httpOnly cookies) |
/dashboard |
Overview stats |
/dashboard/brands |
Brands, menu items, events |
/dashboard/history |
Company timeline |
/dashboard/leadership, /dashboard/team |
People |
/dashboard/news |
News CRUD |
/dashboard/navigation |
Header/footer nav tree |
/dashboard/site-settings |
Hero, about, brandColor, SEO |
/dashboard/users, /roles, /permissions |
RBAC |
/dashboard/audit-logs, /dashboard/security |
Audit + MFA |
| Category | Technology |
|---|---|
| Framework | Next.js 16 (App Router) |
| Auth | BFF + httpOnly cookies + CSRF |
| Data | TanStack Query v5 |
| Forms | react-hook-form + Zod |
| UI | shadcn/ui + Tailwind CSS 4 |
| Tests | Vitest + Playwright |
Start at docs/README.md
| Guide | Description |
|---|---|
| Architecture | FSD + BFF pattern |
| Site Guide | Marketing routes |
| Admin Guide | Dashboard CRUD |
| Security | BFF, CSRF, cookies |
| Deployment | Production deploy |
| White Label | Brand configuration |
| Fork Guide | Full-stack fork |
| ADR | Architecture decisions |
| Frontend | Backend |
|---|---|
| nextjs-fsd-portfolio-template | nestjs-fsd-portfolio-template |
Port 3000 |
Port 3001 |
| v3.0.0 | v3.0.0 |
| Version | Highlights |
|---|---|
| v3.0.0 (current) | Multi-brand marketing + admin CMS (brands, news, history, team) |
| v2.3.0 | Portfolio CMS UI — removed in v3 |
| Command | Description |
|---|---|
npm run dev |
Development server |
npm run build |
Production build |
npm run typecheck |
TypeScript |
npm run test |
Vitest |
npm run test:e2e |
Playwright |
bash scripts/fork-check.sh |
Smoke check |
devTugu — Tuguldur Unurtsetseg ([email protected])
MIT — Copyright (c) 2026 Tuguldur Unurtsetseg (devTugu).
