# `nextjs-enterprise` — materialization manifest

```
apps/web-next/
├── package.json                                  template
├── next.config.ts                                template
├── tsconfig.json                                 template  (extends @loma-portal/tsconfig/react.json)
├── eslint.config.js                              template
├── tailwind.config.ts                            template
├── postcss.config.js
├── middleware.ts                                  auth + locale + security headers + rate limit
├── src/
│   ├── app/
│   │   ├── layout.tsx                            root layout, i18n provider
│   │   ├── global-error.tsx
│   │   ├── (marketing)/                          marketing layout group
│   │   │   ├── layout.tsx
│   │   │   └── page.tsx
│   │   ├── (auth)/
│   │   │   ├── login/page.tsx
│   │   │   └── layout.tsx
│   │   └── (app)/
│   │       ├── layout.tsx                        dashboard layout
│   │       ├── error.tsx
│   │       └── dashboard/page.tsx
│   ├── components/                                shared client components
│   ├── lib/
│   │   ├── api-client.ts                          fetch wrapper with auth + correlation-id + retry
│   │   ├── auth.ts                                NextAuth or custom JWT helpers
│   │   └── i18n.ts                                next-intl configuration
│   ├── messages/
│   │   ├── en.json
│   │   └── th.json
│   └── server/
│       └── actions/                               typed Server Actions (zod schemas)

packages/ui-react/
├── package.json                                  template
├── tsconfig.json                                 template
└── src/
    ├── index.ts
    └── components/                                shadcn-based primitives
```

After materialization, `_init.ps1` runs `pnpm install`. Real source lands in Phase 3.
