# Master TODO - Electron Rare OVH/Astro Updated: 2026-03-14 Source of truth: this file for execution priorities, plus [docs/README.md](./README.md) and the current code in `src/` ## Scope actif - Site Astro publie sur OVH via GitHub Actions FTP. - Preview publique sous `/preview/`, production a la racine. - Pages actives: `/`, `/formation/`, `/mentions-legales/`, `robots.txt`, `sitemap.xml`. - Direction artistique active: `white-contrast`, claire par defaut, sans bouton de bascule public. - Positionnement actif: systemes electroniques specifiques, avec familles visibles electronique, automatisme, energie, stockage et optimisation; pas limite a l'embarque, avec partenaires mobilises quand le projet devient multi-technique. - Surface a maintenir: Hero, Approche, Cas concrets, photo strip, video strip, Missions, FAQ, Contact, footer. - Endpoint lead production: `POST /api/submit-lead` (SSR -> Frappe CRM Lead, fallback optionnel `CRM_FALLBACK_URL`). ## Verites de reference - Point d'entree documentaire: `docs/README.md` - Structure de page: `src/pages/index.astro` - Header partage: `src/components/SiteHeader.astro` - Sections actives: `src/components/sections/Hero.tsx`, `About.tsx`, `CaseStudies.tsx`, `GraphicSprints.tsx`, `Faq.astro`, `Contact.astro` - Theme/layout: `src/layouts/BaseLayout.astro`, `src/styles/global.css`, `src/styles/home-workbench.css` - Canonical/base/deploiement: `src/lib/site.ts`, `scripts/build-astro-external.mjs`, `docs/ovh-ftp-preview-solution-2026-03-14.md` - Tracking actif: `src/lib/tracking.ts` + emitters inline dans `src/layouts/BaseLayout.astro` - Endpoint opérationnel lead: `src/pages/api/submit-lead.ts` + intégration formulaire `src/components/sections/Contact.astro`. ## Etat courant - [x] Homepage OVH re-synchronisee dans le repo Astro. - [x] Ancienne variante `studio/figma` sortie du runtime actif. - [x] Bouton contraste retire du markup. - [x] Theme blanc contraste force par defaut dans le layout source. - [x] Reliquats CSS `.site-contrast-toggle` supprimes du source actif. - [x] Build preview local `PUBLIC_SITE_URL=/preview/` repasse propre. - [x] Validation tracking recalee sur le contrat Astro actif. - [x] Workflow OVH enrichi avec verification HTTP publique post-deploiement. - [x] Preview OVH publie et valide publiquement via GitHub Actions (`23094884980`). - [x] Production OVH publiee et validee publiquement via GitHub Actions (`23095014692`). - [x] Top bar mobile refondue via header partage + menu compact (`a3ccc1c`). - [x] Preview OVH mis a jour avec la nouvelle top bar mobile et valide publiquement (`23095540371`). - [x] Production OVH republiee avec la nouvelle top bar mobile et validee publiquement via GitHub Actions (`23096174775`). - [x] Hero, about, footer et FAQ recales sur le positionnement `systemes electroniques specifiques`. - [x] Signaux publics `disponible`, `freelance · France`, `UNSTABLE BY DESIGN` et exposition publique du lab retires du site. - [x] Preview OVH republie avec le positionnement `electronique · automatisme · energie · stockage · optimisation` (`23098262445`). - [x] Production OVH republiee avec le meme positionnement (`23098335508`). - [x] `https://www.lelectronrare.fr/lab/` et `https://www.lelectronrare.fr/preview/lab/` repondent maintenant `404`. - [x] `POST /api/submit-lead` actif et pointé vers Frappe CRM Lead en production (`electron-rare-site`). - [x] Le hero blanc utilise maintenant un vrai visuel oscilloscope, avec recadrage et overlays recales pour la DA claire. - [x] Preview OVH republie avec le hero oscilloscope recadre et le recadrage memoire/docs (`23099694984`). - [x] Production OVH republiee avec le meme hero oscilloscope (`23099760106`). - [x] `docs/README.md` cree comme point d'entree et source de verite documentaire. - [x] Runbooks et plans legacy les plus confus recales en mode historique ou remplaces par des versions actives. - [x] Les gros audits et plans de transition restants sont maintenant bannieres comme historiques pour eviter les faux redemarrages. - [x] Les benchmarks, plans Figma, snapshots KPI et backlogs d'assets secondaires sont eux aussi recales comme archives historiques. - [x] Les docs historiques sont maintenant deplacees physiquement dans `docs/archive/2026-03-legacy-plans/`. - [ ] White-contrast pass verifiee visuellement sur preview. - [ ] White-contrast pass verifiee visuellement sur production. - [ ] Confirmer visuellement depuis un navigateur humain que `www` sert bien la nouvelle home sur tous les points d'acces. - [x] Verification technique locale reproduite avec le `User-Agent` du workflow (`electron-rare-gh-verify/1.0`) : `200` sur `/`, `/formation/`, `/mentions-legales/`. ## P0 - Bloc de sortie immediate - [x] Builder le preview avec le theme blanc contraste (`PUBLIC_SITE_URL=https://www.lelectronrare.fr/preview/ npm run build:external`). - [ ] Verifier le rendu de la home: top bar mobile, hero, approche, cas clients, missions, FAQ, footer. - [ ] Verifier les surfaces medias: hero oscilloscope, photo strip, video strip. - [ ] Verifier la section contact en version claire: tabs, textarea, formulaire, focus clavier, messages d'etat. - [ ] Verifier `/formation/` et `/mentions-legales/` avec le meme theme clair. - [x] Deployer le preview OVH et valider `https://www.lelectronrare.fr/preview/`. ## P1 - Validation live - [x] Deployer la production a la racine avec la top bar mobile modernisee. - [x] Republier preview et production avec le nouveau positionnement et suppression effective du repertoire `/lab/`. - [x] Re-verifier en live les routes `/`, `/formation/`, `/mentions-legales/`, `/robots.txt`, `/sitemap.xml` via le check public GitHub Actions apres redeploiement. - [x] Verifier que `https://www.lelectronrare.fr/lab/` ne fait plus partie de la surface publique servie. - [ ] Verifier l'absence de retour vers l'ancienne homepage ou d'elements sombres residuels. - [ ] Verifier le cadrage live du hero oscilloscope sur preview et production. - [ ] Verifier les ancres actives: `#a-propos`, `#graphic-sprints-title`, `#faq`, `#contact`. - [ ] Verifier la top bar mobile sur 390px et 768px: une seule ligne visible fermee, CTA `Contact` direct, menu stable, fermeture sur clic/Escape. - [x] Documenter la contrainte de verification locale: `curl` sans `User-Agent` specifique retourne `403` sur `www` depuis cette machine. ## P2 - Tracking / SEO - [ ] Valider GA4 Realtime et DebugView pour les events actuels: - `cta_hero_contact` - `outbound_linkedin_contact` - `outbound_email_contact` - `outbound_github_contact` - [ ] Verifier les events auto: - `experiment_variant_exposed` - `engagement_scroll_depth` - `engagement_section_view` - `cwv_metric` - [ ] Re-verifier canonical, OG, Twitter, robots, sitemap et `theme-color`. - [ ] Soumettre ou recontroler Search Console sur la base de la prod actuelle OVH. ## P3 - Nettoyage et consolidation - [x] Supprimer les blocs CSS morts `.site-contrast-toggle` encore presents dans `src/styles/global.css`. - [x] Mettre en place un point d'entree documentaire actif et reclasser les runbooks les plus critiques. - [ ] Nettoyer le reste des references legacy a l'interieur meme des archives secondaires quand ce sera utile. - [ ] Mesurer LCP et budget media de la variante blanche en conditions reelles. - [x] Archiver les plans anterieurs devenus purement historiques. ## Regles de pilotage - Preview d'abord, production ensuite. - Toute doc active doit parler du site Astro/OVH actuel, pas d'une ancienne homepage statique. - Les ancres de reference sont celles du code actuel, pas `#projets`. - Le theme de reference est clair/white-contrast par defaut. ## Deploiement SSR Photon (2026-03-19) - [x] Creer un dockerfile multi-stage pour build + runtime serve (production legere). - [x] Creer le compose site et la route Traefik associee. - [x] Ajouter un .env.example d'exemple pour deploiement et activer FRAPPE_* + PUBLIC_SITE_URL. - [x] Route Traefik externe: https://www.lelectronrare.fr et lelectronrare.fr (source réelle: /root/zacus-stack/config/traefik/dynamic/electron-rare-site.yml) - [x] Rebuilder/redeployer le service electron-rare-site sur port 4321. - [x] Verifier routes: /, /404, /mentions-legales => 200. - [x] Ajouter la page mentions-legales et la page 404. - [x] Brancher le formulaire de contact vers Frappe CRM en production. ## Carte de flux lead (prod) ```mermaid flowchart LR V[Visiteur] -->|Complète formulaire| F[Contact.astro /api/submit-lead] F -->|POST JSON| A[src/pages/api/submit-lead] A -->|POST| R[Frappe CRM Lead] A -->|fallback (si Frappe KO)| C[CRM custom legacy] R -->|Lead stocke| D[Dashboard CRM + pipeline] ```