# Stato del progetto (18 settembre 2026)

Sito nuovo per paneditriora.it, Panificio Asplanato, Triora. Tutto il piano è implementato, revisionato e online in anteprima. Manca la scelta del tema da parte del cliente e la messa in 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 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", storia con Mattia (fotogramma del promo in bici), FAQ con schema `FAQPage`, contatti rapidi.
- Prodotti: elenco + 7 schede con ingredienti, allergeni, formati, schema `Product`, link shop (`shopUrl` per prodotto, fallback pagina produttore), PDF tabelle nutrizionali.
- Panificio (storia, ritratti, gallery con lightbox `<dialog>`), Triora (gallery, come arrivare), Parlano di noi (YouTube facade, Rai, Striscia), Contatti (mappa Leaflet + OpenStreetMap con pin del marchio, WhatsApp, email, PEC, social), Privacy, Note legali.
- Footer: icone Tabler inline, contatti su due colonne, selettore lingua con bandierine SVG, loghi partner, 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.

## Da chiedere al cliente

1. Foto vera di Mattia (ora c'è un fotogramma del video promo).
2. Shop online: su nuovabottegaitalia.com i prodotti Asplanato risultano disattivati (18/09/2026: le schede `sa=2662-2667` esistono ma sono vuote e la ricerca non li trova). Vendono ancora lì? Se sì, mettere `shopOnline: true` in `src/data/business.ts` (riaccende bottone "Compra online", link nel footer e nei contatti) e rimettere "e online" nella FAQ e in `product.whereText` delle 6 lingue. Le URL per 5 prodotti sono già nel frontmatter `shopUrl`; mancano Multicereali e Pane d'Orzo.
3. Orari di apertura (vanno in `src/data/business.ts` e in `bakeryLd`).
4. TikTok o altri social.
5. Dominio: scaduto il 16/09/2026 su Aruba Business (reseller WIDE-REG, la vecchia software house), stato `autoRenewPeriod`. Confermare il rinnovo e chiedere l'auth-code per il trasferimento a IONOS.
6. Caselle email sul dominio (MX su Genesys): vanno preservate nel cambio DNS o migrate.
7. Se vogliono il video hero anche su mobile (ora no).
8. Un dato preciso sulla durata del pane, se vogliono farne un claim.

## 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`.
