# 22 — App pubblica: scaffold Angular SSR Leggi `CLAUDE.md`. ## Obiettivo Creare `apps/public` con SSR, layout e mappa delle route (pagine vuote). ## Cosa fare - Angular ultima versione stabile, standalone, signals, zoneless, SCSS, `@angular/ssr`. - Design tokens in SCSS (colori, tipografia, spaziature, breakpoint) con palette coerente con acqua/energia/sostenibilità; layout responsive mobile-first. - Layout: header con menu macro-aree (Acqua, Energia, Comfort, Mobilità, Industria), Shop, Blog, Configuratore, Showroom, Contatti, link "Area riservata" verso il sottodominio privato; footer con dati aziendali, privacy, cookie. - Route (lazy) con componenti placeholder: `/`, `/azienda/*`, `/soluzioni/:area`, `/soluzioni/:area/:soluzione`, `/shop`, `/shop/:handle`, `/carrello`, `/checkout`, `/blog`, `/blog/:slug`, `/configuratore`, `/realizzazioni`, `/showroom`, `/contatti`, `/privacy`, `/cookie`, 404. - `ApiService` con base URL da environment, `withFetch()` e transfer state per non ripetere le chiamate lato client. - `SeoService`: title, meta description, canonical, Open Graph, JSON-LD (Organization, LocalBusiness). - Route SSR che genera `sitemap.xml` e `robots.txt` (usa `/sitemap-data` dell'API). ## Criteri di accettazione - `npm run dev -w apps/public` e build SSR funzionano; `curl` di una pagina restituisce HTML già renderizzato con title e meta corretti. - Nessun errore di hydration in console. - Lighthouse SEO ≥ 95 sulla home placeholder. - `CLAUDE.md` aggiornato.