# Stato del progetto (23 settembre 2026)

Sito nuovo per paneditriora.it, Panificio Asplanato, Triora. Tutto il piano è implementato, revisionato con Paolo (18-19/09) e online in anteprima. Prossimo passo: revisione del cliente, scelta del tema, produzione.

## Dove stanno le cose

| Cosa | Dove |
|---|---|
| Codice, si lavora qui | `~/dev/paneditriora` (clone locale, branch `main`) |
| Archivio sul NAS (SMB, lento: non lanciare build da lì) | `~/Server/Siti Web/Lavoro/Pane di Triora` (stesso repo, allineato a `main` con `git pull`) |
| Repo | https://github.com/paoloalby/paneditriora (privato) |
| Anteprima Notte | https://paneditriora-notte.pages.dev |
| Anteprima Farina | https://paneditriora-farina.pages.dev |
| Materiale originale (foto, logo, video, HTML vecchio, inventario) | `_assets_originali/` (i video solo sul NAS e in locale, esclusi da git) |
| Spec di design | `docs/superpowers/specs/2026-09-17-paneditriora-refactoring-design.md` |
| Piano dei 14 task | `docs/superpowers/plans/2026-09-17-paneditriora-sito.md` |
| Mockup delle direzioni visive scelte | `docs/mockup/` (aprire gli HTML nel browser) |
| Come si modifica e si pubblica | `README.md` |
| Report per task delle revisioni (non in git) | `.superpowers/sdd/` nel clone locale |

Le anteprime hanno `noindex` e `robots.txt` chiuso. Cloudflare Pages: account paoloalby@hotmail.com, progetti `paneditriora-notte` e `paneditriora-farina`, deploy da CLI con `pnpm preview:<tema>` (branch di produzione `main` di Pages, nessun collegamento GitHub).

## Cosa c'è

- Astro 7.3 statico, 6 lingue con prefisso (`/en/` default e `x-default`, `/it/`, `/fr/`, `/de/`, `/es/`, `/nl/`), 90 pagine. Root `/` = Pages Function che sceglie la lingua da cookie `lang` o `Accept-Language`.
- Due temi dallo stesso codice, `THEME=notte|farina`: cambiano token CSS, font e tre componenti (testata, hero, griglia prodotti). Le pagine interne in Notte sono chiare (`body.paper`).
- Home: hero (video self-hosted intero, 39 s, solo desktop in Notte; foto nell'arco con sigillo in Farina), coverflow dei 7 prodotti (script vanilla portato da Gibertini, `src/scripts/coverflow.js`), fascia "controllate che sia quello con il marchio" con il marchio grande in filigrana, storia con il ritratto di Mattia, FAQ con schema `FAQPage`, contatti rapidi.
- Prodotti: elenco (Notte: celle 4:3 a tutta larghezza; Farina: griglia con ottava card "Dove trovarlo") + 7 schede con foto sticky, ingredienti, allergeni, formati, schema `Product`, PDF tabelle nutrizionali in nuova tab. Bottone "Compra online" e link shop nascosti da `shopOnline: false` in `business.ts` (vedi "Da chiedere al cliente").
- Panificio (storia, 5 ritratti con Mattia per primo, gallery 6 foto con lightbox `<dialog>`), Triora (gallery 6 foto, come arrivare), Parlano di noi (gallery video a 4 card: promo Sagitta e È sempre mezzogiorno incorporati da YouTube; TG1 e Striscia con fotogramma e link alla pagina originale, perché non danno embed e i file non sono nostri), Contatti (mappa Leaflet + OpenStreetMap con pin del marchio, WhatsApp, email, PEC, social), Privacy, Note legali.
- Testata e footer: pittogramma + logotipo "Pane di Triora" (`Wordmark.astro`: PNG bianco mascherato, prende il colore dal contesto). Footer: 8 contatti su due colonne con icone Tabler (telefono, cellulare, WhatsApp, email, Instagram, Facebook, Google Maps, PEC), selettore lingua con bandierine SVG, loghi partner 56 px, credito "Sito realizzato da DueBytes di Paolo Alberti".
- SEO/GEO: title/description per pagina e lingua, canonical, 6 hreflang + x-default, Open Graph, `Bakery`/`Product`/`Breadcrumb`/`ItemList`/`FAQPage`, sitemap (senza hreflang: gli slug tradotti non sono compatibili con l'integrazione), `robots.txt`, `llms.txt`.
- Sicurezza e peso: CSP in `public/_headers`, nessun cookie tranne `lang`, nessuna libreria JS client tranne Leaflet nel bundle, font self-hosted, immagini AVIF/WebP. Lighthouse: 100 su accessibilità e SEO, performance 95-100 tranne home Farina mobile 92-95 (font italico + slider).
- Verifica: `pnpm verify` = 9 test, coerenza dei contenuti nelle 6 lingue, `astro check`, due build, `scripts/check-dist.mjs` (h1, canonical, hreflang, link, srcset, JSON-LD, sitemap). Screenshot di QA a 375/820/1440 con `node scripts/qa-shots.mjs <cartella>`.

## Decisioni prese con Paolo

- Statico puro, nessun CMS: le modifiche le fa Paolo nel codice, poche all'anno.
- Traduzioni fatte con AI, revisione al cliente. In EN "yeast", non "brewer's yeast".
- Niente form, niente GA4, niente banner cookie. Cloudflare Web Analytics quando si va in produzione (`CF_BEACON` in `.env`).
- Coverflow scelto su entrambi i temi (Paolo lo preferisce alla riga piatta).
- Mattia è il volto del forno: va in evidenza appena c'è una sua foto vera.
- Claim: "l'unico, autentico Pane di Triora", "da oltre sessant'anni". La durata del pane solo come riga di supporto.
- Google Maps sostituito da Leaflet + OSM perché l'iframe non permette il pin col marchio; CARTO ora chiede una chiave API.
- Revisione 18-19/09: logotipo obbligatorio accanto alla spiga (menu e footer, stesso colore); video hero intero perché il taglio a 14 s non mostrava la fine della cottura; foto di Mattia (`persona06_55pl4fcv`, che l'inventario dava per doppione) è il volto del forno: in home e prima tra i ritratti; niente link allo shop finché il cliente non conferma che vende ancora su NBI; i servizi TG1 e Striscia non si incorporano né si scaricano (contenuto Rai/Mediaset): fotogramma + link.

## Risposte del cliente (Mattia, 23/09/2026)

- Tema: preferisce **Notte** (anche Farina gli piace). Si va in produzione con Notte.
- Foto: le foto del vecchio sito le ha fatte Sintesi e non vuole problemi. Faranno foto nuove: vanno sostituite prima della produzione. Sono di Sintesi (da `_assets_originali/foto`, Umbraco): prodotti, panificio01-03, lievitazione, forno, affettatrice, banco, pagnotta, ritratti persona02/03/04/06 e mattia, Triora (borgo, panorama, campanile, monti, mulino, bosco, piazza, insegna). Nostri o di terzi citati: `bici` (fotogramma del promo Sagitta), `tg1` e `striscia` (fotogrammi con link), video hero (dal canale YouTube del cliente).
- Shop: non vendono più su Nuova Bottega Italia. Tolto tutto (bottone, link, `shopUrl`, stringhe).
- Orari negozio: tutti i giorni 7-19:30, martedì 7-18:30, mercoledì 9-19:30. In `business.openingHours` (JSON-LD) e nella pagina contatti. "Pane caldo nel tardo pomeriggio, tranne il sabato" resta.
- Social: solo Instagram e Facebook.
- Dominio: ok al trasferimento, Mattia chiede l'auth-code. Intestatario il cliente, registrar IONOS, DNS su Cloudflare (oggi pagano a Sintesi 253 + 69 + 26 euro l'anno).
- Email: usano solo info@paneditriora.it, in entrata e in uscita. Va garantita nel cambio DNS (servizio mail da scegliere: IONOS o altro).
- Video hero: "possiamo anche toglierlo". Da decidere con Paolo.

## Da fare quando il cliente sceglie il tema

Passi nel README, sezione "Andare in produzione". In più: Rich Results Test di Google su home e una scheda (aspettarsi l'avviso "manca offers" sui prodotti, non pubblichiamo prezzi), Search Console con la sitemap, Bulk Redirect apex → www.

## Note di lavoro

- `astro dev` accetta una sola istanza per progetto: Notte in dev sulla 4322, Farina con `THEME=farina astro build --outDir dist-farina` e `astro preview --outDir dist-farina --port 4323`.
- Se si toccano i JSON in `src/content/ui/` e il dev server non li vede: `rm .astro/data-store.json node_modules/.astro/data-store.json` e riavviare.
- Mai `git add -A` mentre un subagent sta lavorando sugli stessi file: ha già inglobato file altrui in un commit una volta.
- Il bash di macOS è 3.2: `scripts/import-photos.sh` va lanciato con `/opt/homebrew/bin/bash`.
