# Copilot / AI coding agent instructions — portfolio-admin Keep this short and actionable. Reference files below when making edits. Big picture - This is an Angular 20 standalone application (no NgModule). The app bootstraps with `bootstrapApplication` in `src/main.ts` and uses `appConfig` (`src/app/app.config.ts`) for providers. - Server-side rendering (SSR) is enabled via `@angular/ssr`. Server entry and Express integration live in `src/server.ts`. The SSR configuration merges `appConfig` with `config` from `src/app/app.config.server.ts`. Key workflows (commands you can run) - Start dev server (live reload): ```powershell npm run start ``` - Build for production (browser + server artifacts go to `dist/portfolio-admin`): ```powershell npm run build ``` - Run SSR server from built artifacts (package.json): ```powershell npm run serve:ssr:portfolio-admin # which runs: node dist/portfolio-admin/server/server.mjs ``` Tests - Unit tests use Karma (configured via `angular.json`): ```powershell npm run test ``` Project-specific patterns & conventions - Standalone components only. Example: `src/app/app.ts` uses `@Component({ ... imports: [RouterOutlet] })` and signals (`signal('...')`) instead of classic NgModule state. - Routing: routes are defined in `src/app/app.routes.ts` (currently empty array). Server-side routes for SSR are in `src/app/app.routes.server.ts` and use `RenderMode.Prerender` by default. - Hydration: client hydration and event replay are enabled in `src/app/app.config.ts` via `provideClientHydration(withEventReplay())` — keep event handlers idempotent where possible. - Styling: SCSS is used project-wide. Components expect `.scss` files; Prettier settings for HTML are in `package.json`. Integration points & important files - `src/server.ts` — Express + `AngularNodeAppEngine` handler. Static files served from `dist/.../browser` and `reqHandler` is exported for hosting. - `src/main.server.ts` — SSR bootstrap used by server builds. - `package.json` — scripts of interest: `start`, `build`, `test`, `serve:ssr:portfolio-admin`. - `angular.json` — build targets and SSR options (outputMode: "server", `server` entry, and `ssr.entry`). Editing guidance / examples - Add an API endpoint (server-side): edit `src/server.ts` and add `app.get('/api/...', (req,res)=>{...})`. Keep the handler pure and return JSON; SSR handler sits after static middleware. - Add a route (client + server): update `src/app/app.routes.ts` with the new `Route` and ensure any server prerender behavior is acceptable (serverRoutes uses `**` prerender by default). - When changing providers, update `src/app/app.config.ts` (client) and `src/app/app.config.server.ts` (server merge) if the provider is required at SSR time. What NOT to change without confirming - The SSR glue in `src/server.ts` and the `AngularNodeAppEngine` usage — small mistakes here will break server rendering. If adding features, keep existing request flow (static -> SSR handler). - `import.meta.dirname` usage in `src/server.ts` implies ESM-style builds. Don't switch CommonJS unless you also adjust build outputs and `package.json` fields. If anything is unclear or you need more examples (routing, adding an API, or running SSR locally), tell me which area and I'll expand the file with a short example patch.