Transparence radicale

Le journal d'évolution de ce site

Nous appliquons à notre propre site les standards que nous livrons à nos clients. Chaque amélioration est consignée publiquement — une preuve vivante de notre exigence.

94 améliorations publiées
Correctifv4.6.00fde29d

Correction intégrale de l'audit du 4 septembre — devis, quotas, base, front, build, contenu

Suite de AUDIT-2026-09-04.md (§10 pour le détail et §10.3 pour les points écartés ou laissés au propriétaire).

Correctifv4.6.0935003b

Le contrôle des dates de pages accepte le clone superficiel de Vercel et régénère sans échouer

Correctifv4.6.0ad60c36

Correction intégrale de l'audit du 3 septembre — chatbot, prérendu, hébergeur, prix nets, identité, SEO, accessibilité, sécurité

Suite de AUDIT-2026-09-03.md (§11 pour le détail des corrections et des arbitrages).

Correctifv4.6.065e7fae

Retire la ligne « Directeur de la publication » du pied de page

À la demande du client. La mention reste sur /mentions-legales, où la LCEN l'exige.

Correctifv4.6.0802ab80

Retire les dernières promesses « jusqu'à 5 000 € » sur tarifs, services, e-commerce et sites vitrines

L'aide nationale France Num n'existe plus ; ces cinq pages renvoyaient encore vers un montant faux. Textes alignés sur les dispositifs réels (Atouts Numériques, IA Booster, aides locales) et sur le paiement en trois fois sans frais.

Correctifv4.6.0cbcfba3

Les boutons de /tarifs mènent enfin au configurateur — et audit React, sécurité, TVA, aides

Bug signalé : les six boutons de /tarifs et le CTA « Lancer le projet » (79 pages) menaient en haut de l'accueil, sans configurateur. Trois causes : aucune prise en charge de l'ancre en navigation interne (ScrollRestoration remontait en haut), configurateur monté seulement à l'approche de l'écran, CTA en <a href>…

Nouveautév4.6.096df72f

Découpe ProjectWizard en données, cartes et génération PDF — même comportement

ProjectWizard.tsx faisait 1 331 lignes, seul fichier du dépôt au-delà de la limite de 800. Trois modules en sortent, sans changer une ligne de rendu ni de logique : wizard-data.ts (139 lignes) : types, projets, budgets, délais, forfaits de service, aides publiques, numéro de devis ;

Nouveautév4.6.058e1602

Passe des 150 améliorations — en-tête intelligent, thème sans flash, AVIF, recherche 404, partage, garde-fous

Sur les 150 points de la liste, 117 étaient déjà en place ; 26 sont implémentés ici, 7 écartés avec justification (AUDIT-150-2026-09-02.md).

Correctifv4.6.099e4ccd

Le bouton d'envoi reste inerte tant que React n'a pas pris la main

Le formulaire de contact est prérendu : entre l'affichage du HTML et l'hydratation, un clic sur « Envoyer » déclenchait la soumission native du navigateur — rechargement de la page, saisie perdue, aucun message.

Nouveautév4.6.04642518

Services, méthode, agence Lyon et pages locales réécrites en pages complètes

Six pages du site tenaient en quelques centaines de mots — la page des services en comptait 473, celle de la méthode 219, les pages de Villeurbanne, Bron et Vénissieux environ 200 chacune, quasi identiques.

Designv4.6.06ae6b4d

Retour au thème précédent — navy, blanc, Outfit et Plus Jakarta Sans

La charte appliquée le 1er septembre (fond crème, terracotta, Poppins et Lora) est retirée : le site retrouve ses jetons de couleur, ses polices, ses ombres, son image de partage et son manifeste d'origine. Tout ce qui a été fait depuis reste en place — corrections légales, mesure d'audience, chorégraphies de la Hero et des sections, transitions de page.

Correctifv4.6.0d7b202f

Rechargement automatique quand le HTML périmé demande des fichiers disparus

Chaque mise en production remplace les fichiers hachés de /assets/, et Vercel cesse de servir ceux du déploiement précédent. Une page obtenue avant le déploiement — onglet resté ouvert, cache — réclame alors une feuille de style et un script qui n'existent plus : le site s'affiche brut, sans style ni interactivité.

Designv4.6.05a982ad

Transitions de page par l'API View Transitions

Chaque clic sur un lien interne enveloppe désormais la navigation dans `document.startViewTransition` : l'ancienne page s'efface en montant légèrement, la nouvelle se pose en venant du bas, et l'en-tête comme le bandeau supérieur restent nets pendant que le contenu change dessous.

Performancev4.6.0cb45f06

Framer-motion quitte le chemin de la page d'accueil

Deux composants secondaires tiraient encore la bibliothèque (41 Ko compressés, chunk proxy-*.js) sur l'accueil : le badge technologique, pour un survol à ressort, et le carrousel de témoignages, pour la sortie animée de la citation quittant l'écran.

Correctifv4.6.0bf1a509

La variante mobile du chapô passe après la règle générale, sinon elle était écrasée

Performancev4.6.0105d33c

Le chapô glisse sans masque sur mobile, le LCP retrouve sa valeur

Sur mobile, le chapô du premier écran est le plus grand bloc de texte visible dès que le titre est affiché : c'est lui que Chrome retient comme élément LCP. Le masque qui le dévoilait retardait donc sa première peinture, et la mesure en production le confirmait — 3,0 s avant la Hero animée, 3,3 à 3,4 s après.

Designv4.6.0c3f9002

Révélations au défilement, cartes à projecteur et pied de page animé

Après la Hero, le reste de l'accueil et le pied de page reçoivent la même signature de mouvement. Tout repose sur un déclencheur unique, `Reveal` (un IntersectionObserver par groupe), et sur des classes CSS d'attente et d'entrée : les fondus génériques de framer-motion disparaissent de six sections, qui n'importent…

Designv4.6.0dc10c76

Chorégraphie d'entrée, boutons aimantés et profondeur sur l'image

La Hero était statique : un fondu générique sur les chiffres, rien d'autre. Elle reçoit une chorégraphie complète, réglée depuis une seule table de délais dans Hero.tsx : le titre se révèle mot par mot depuis un masque (écrans larges) ou se pose en cascade sans jamais être caché (mobile, où le H1 est l'élément LCP —…

Correctifv4.6.080e1a45

Franchise en base de TVA, et la mention passe au CIBS

L'éditeur relève de la franchise en base. Le site affichait pourtant un numéro de TVA intracommunautaire en pied de page, dans les mentions légales, dans les CGV et sur le devis — et le simulateur ajoutait 20 % au total.

Correctifv4.6.0d5f9998

Retire l'agrément ESUS, revendiqué sur six pages et sans objet

L'éditeur confirme que l'agrément « Entreprise solidaire d'utilité sociale » n'est plus d'actualité. Il restait affiché à neuf endroits, dont plusieurs très en vue : la promesse d'ouverture de la page Expertise, un argument de sa liste de forces, un paragraphe de présentation, un point de la page Agence Web Lyon, le…

Correctifv4.6.0b2bef15

Mentions légales : forme juridique et identité de l'éditeur mises à jour

Les mentions légales indiquent désormais la forme juridique réelle de l'éditeur — entreprise individuelle au régime de la micro-entreprise — avec les nom et prénom que la LCEN exige pour un site tenu par une personne physique. La mention de capital social, sans objet pour une entreprise individuelle, est retirée ; « Kayzen Web » y figure comme nom commercial.

Correctifv4.6.06240690

La mesure d'audience ne compte plus les environnements de travail

La balise GA4 se déclenchait sur les environnements de prévisualisation dès qu'un consentement était enregistré, et le trafic de test se mêlait à celui des visiteurs réels. Elle ne démarre plus que sur www.kayzen-lyon.com ; les autres hôtes légitimes redirigent tous vers celui-ci, aucun visiteur n'y séjourne.

Correctifv4.6.0ff55111

Les conversions partaient dans un conteneur GTM vide, on branche GA4

Le site pousse quatorze types d'événements dans le dataLayer : cta_click, form_step, form_submit, form_error, scroll_depth, package_select, web_vitals, js_error, les trois événements du popup de sortie, et surtout SUBMIT_LEAD_FORM, poussé par le formulaire de contact et par le devis.

SEOv4.6.0bdd1dd3

Corrige les horaires en 9h-19h et supprime le doublon de la page contact

La fiche Google annonçait 09:00-19:00, le site 9h-18h. L'éditeur confirme que la fiche a raison. Google recoupe ces deux sources : un écart d'une heure sur l'horaire de fermeture affaiblit la corroboration entre le site et la fiche, au même titre que l'écart d'adresse corrigé plus tôt — et il envoie surtout un…

Nouveautév4.6.03d75e23

Étend la redirection permanente aux trois hôtes du domaine .fr

Le sous-domaine internet.kayzen-lyon.fr reste indexé séparément de www.kayzen-lyon.com. Le dépôt donnait pourtant l'impression du contraire : vercel.json déclare bien une redirection permanente pour cet hôte.

Correctifv4.6.0c986ca6

Supprime la course qui faisait échouer le prérendu de la 404

La sonde qui vérifie que la page 404 déclare bien « noindex » capturait l'en-tête avant que la directive ne soit posée, et refusait au hasard des déploiements pourtant corrects. Elle attend désormais la balise qu'elle contrôle : le garde-fou garde tout son sens, mais ne se déclenche plus sur sa propre latence.

SEOv4.6.0fd8b95a

Aligne le site sur l'adresse des locaux, le siège reste aux mentions

L'entreprise a deux adresses : un siège social (6 rue Pierre Termier, celui du Kbis) et des locaux (6 rue de Bourgogne). Le site n'affichait QUE le siège — y compris là où il annonce une adresse de visite : pied de page, carte, ligne « Localisation », JSON-LD LocalBusiness, llms.txt, repli sans JavaScript.

SEOv4.6.0f83c08e

Renseigne la fiche Google — le hasMap est actif

Le CID de la fiche a été relevé dans le panneau propriétaire : 13733496944041442777. L URL est construite dessus plutôt que sur un raccourci maps.app.goo.gl, qui peut expirer et masque l entité visée ; le CID, lui, survit à un changement de nom ou d adresse.

SEOv4.6.0867e860

Associe le site à la fiche Google sans déposer de cookie

Un audit local externe relève qu'aucune carte Google n'est associée au site. Le constat est exact, pour deux raisons distinctes.

Correctifv4.6.0274b876

Remplace quatre visuels inventés par de vraies réalisations

Quatre pages de service montraient des sites qui n'existent pas.

Nouveautév4.6.09ba9989

Applique la charte Anthropic — palette, Poppins et Lora

Palette officielle sur les 79 pages : Dark #141413, Light #faf9f5, Mid Gray #b0aea5, Light Gray #e8e6dc, et les trois accents orange, bleu et vert. Titrage en Poppins, texte courant en Lora, les deux auto-hébergées comme l'étaient Outfit et Plus Jakarta Sans — la CSP déclare font-src 'self' et aucune requête ne part…

Nouveautév4.6.028e526c

Une étude de cas par réalisation et 150 correctifs d'audit

Les 37 réalisations n'étaient que des vignettes suivies d'un lien sortant : aucune page indexable, et le visiteur quittait le site au moment précis où il était convaincu. Chacune dispose désormais de sa page /portfolio/<slug>, qui expose le raisonnement du projet — contexte, contrainte, décisions de design et de…

Correctifv4.6.041165d2

Sentinel prend son domaine : sentinel.kayzen-lyon.com

Le produit était promu depuis le portfolio, le bandeau d'appel et le script de capture des visuels par une adresse technique de déploiement. Il s'affiche désormais sous le domaine du groupe, comme Nexus, DocuSûr et Konforme ; l'ancienne adresse en .fr y redirige. Le repointage n'a été fait qu'une fois le domaine vérifié en ligne.

Correctifv4.6.07b1ece1

Les liens vers Nexus, DocuSûr et Konforme mènent de nouveau quelque part

Les trois produits du groupe étaient référencés sous l'ancien domaine, dont la zone DNS avait disparu avec le changement d'hébergeur. Onze liens ne menaient donc plus nulle part : dans la signature des emails sortants, le portfolio, le fichier llms.txt, les deux bandeaux d'appel Nexus, la page Solutions métiers IA et la liste de références du devis PDF. Tous pointent désormais vers les adresses en kayzen-lyon.com, qui répondent.

Nouveautév4.6.05aa4158

Retire Kayzen Reconditionné du site, l'activité e-commerce ayant cessé

Le domaine kayzen-lyon.fr portait la boutique solidaire, pas l'agence : celle-ci vivait sous internet.kayzen-lyon.fr avant de passer en kayzen-lyon.com. L'activité de reconditionnement s'arrêtant, l'agence reprend le domaine principal et toutes les traces de la boutique quittent le site.

Accessibilitév4.6.023df5db

Trois familles de libellés en 12 px échouaient au niveau AA

Ces textes font 12 px (`text-xs`) : ils ne relèvent jamais du « grand texte », et WCAG 1.4.3 (niveau AA) exige donc 4,5:1. Mesuré en production, en thème clair, sur le fond quasi blanc que produit `bg-<couleur>-500/10` : React 3,91:1 · Tailwind 3,58:1 · Node.js 3,60:1 · Supabase 3,60:1

Performancev4.6.0fc0b3d9

L'assistant ne se charge plus qu'au clic — 241 Ko en moins sur 43 pages

`ChatBot` était monté sur toutes les pages dès que le navigateur passait au repos (`requestIdleCallback` dans Layout). Or son module tire deux dépendances lourdes : `react-markdown` avec sa chaîne micromark/remark (121 Ko) et `framer-motion` (120 Ko) — dont il est le seul importateur.

Sécuritév4.6.0b51b44a

Google Analytics n'enregistrait rien — les hits étaient bloqués

GA4 envoie ses mesures à `region1.analytics.google.com`. La directive `connect-src` autorisait `analytics.google.com` — mais en CSP un hôte ne couvre pas ses sous-domaines : chaque hit partait puis était refusé par le navigateur.

Sécuritév4.6.00237eea

Publie un security.txt et restreint le CORS des pages HTML

Trois points relevés par un audit externe. Deux sont corrigés, le troisième est documenté parce qu'il n'est pas corrigeable sans casser le site.

Nouveautév4.6.0a7e02be

Passage à React 19

Le site tourne désormais sur la version 19 de React. Le verrou était la brique qui écrit le titre, la description et les balises de partage de chaque page : elle n'était plus compatible et laissait des balises en double, ce qui dégrade le référencement. Elle a été remplacée par une version maintenue, à l'identique pour le reste du code. Le contrôle a porté sur le HTML réellement servi, comparé balise par balise à celui de la version précédente : 51 balises de part et d'autre, identiques. Effet de bord bienvenu, le titre de la page se met maintenant à jour lors des changements de page, ce qui n'était plus le cas.

Nouveautév4.6.0423b846

Allègement du projet : 54 fichiers et 37 composants retirés

Le site avait été démarré à partir d'un modèle fourni avec une bibliothèque complète de composants d'interface. Le site final n'en utilise que quatre : les 45 autres n'étaient appelés par aucune page. Ils ont été retirés, avec les 37 briques externes qu'ils faisaient installer. Rien ne change pour le visiteur — ce code n'était déjà pas envoyé au navigateur — mais le projet est plus simple à maintenir et à faire évoluer.

Build & dépendancesv4.6.09a15694

Zod 4 — `errorMap` devient `error` sur la validation du consentement

zod valide le formulaire de contact. La 4 remplace l'option `errorMap`, qui prenait une fonction renvoyant un objet, par `error`, qui prend directement la chaîne. Deux appels concernés : le schéma de src/pages/Contact.tsx et sa copie dans le test.

Build & dépendancesv4.6.06c2e682

Préparation du passage à React 19

React 19, nouvelle version de la bibliothèque qui fait tourner l'interface, dupliquait les balises de référencement : deux titres et deux descriptions par page au lieu d'un seul, sur les 42 pages. La cause a été identifiée — la gestion des métadonnées, pas le site lui-même — et les composants qui bloquaient la mise à niveau ont été relevés. Le passage effectif a suivi, une fois le défaut traité.

Sécuritév4.6.0e754837

Composant de navigation passé à sa version majeure suivante

Le composant qui gère les liens et les changements de page est passé à sa version majeure suivante, qui corrige deux défauts publiés par ses mainteneurs. Toutes les dépendances du site sont désormais à jour de leurs correctifs.

Build & dépendancesv4.6.03f2fb00

Lucide-react 1, framer-motion 13, tailwind-merge 3 — et deux icônes redessinées

Les trois bibliothèques qui touchent le rendu partout : lucide-react dans 84 fichiers, framer-motion dans 44, tailwind-merge dans le helper `cn()` dont dépend chaque classe utilitaire du site.

Build & dépendancesv4.6.0e17217a

Sonner 2, vaul 1.1, web-vitals 6, @hookform/resolvers 5

Quatre majeures sans portée visuelle générale. web-vitals alimente la mesure des Core Web Vitals (src/lib/web-vitals.ts), sonner les notifications ; vaul et @hookform/resolvers ne servent qu'à des composants shadcn isolés.

Build & dépendancesv4.6.053ebc54

TypeScript 6 — la 7 casse le lint, et le lint vaut mieux qu'un numéro

TypeScript 7.0.2 est bien la dernière version publiée, et le dépôt la traverse sans une seule erreur de type. Elle n'est pourtant pas retenue : au premier lint, typescript-eslint s'interrompt sur « typescript-eslint does not support TS 7.0 ».

Build & dépendancesv4.6.07c4c036

ESLint 10, react-hooks 7, jsdom 30, @types/node 26 — outillage de développement

Aucun de ces paquets n'est servi au visiteur : ils ne tournent qu'au lint et aux tests. Le lot est donc traité en premier, à risque nul pour la production.

Build & dépendancesv4.6.0093b4b8

Relève 48 paquets dans les plages déjà déclarées

Aucune version majeure ici, donc aucune rupture attendue : les plages de `package.json` sont inchangées, seul le lockfile bouge. L'intérêt est de réduire l'écart avant d'attaquer les majeures, pour qu'un échec ultérieur désigne la majeure fautive et non un retard accumulé.

Sécuritév4.6.0bcd1bc0

Trois dépendances transitives mises à jour

nanoid, js-yaml et dompurify sont relevés vers leurs versions corrigées dans le fichier de verrouillage, sans changement de plage dans package.json. Lint, types, tests et build inchangés.

Build & dépendancesv4.6.03a82035

Fins de ligne en LF — le build échouait sur tout clone Windows

Les scripts de vérification (`--check`) comparent leur sortie au fichier du dépôt octet par octet. Ils écrivent en LF, tandis que `core.autocrlf=true` extrait en CRLF : le contenu est identique, la comparaison échoue quand même, et `npm run build` s'arrête dès le clone sur `stack-versions.generated.ts`.

Accessibilitév4.6.00bdec78

Audit de livraison — consentement complet, sortie clavier, flux SSE intègre

Six défauts inédits, dont un que les audits précédents ne pouvaient pas voir : ils vérifiaient le HTML servi (prérendu, donc correct), jamais le DOM après navigation interne.

Nouveautév4.6.0c2ded65

Mentions légales complétées

La forme juridique, le capital social et le directeur de la publication étaient annoncés comme « à compléter » — le dernier figurant dans le pied de page, donc sur l'ensemble des pages du site. Les informations du registre du commerce sont désormais publiées. Un contrôle automatique bloque toute mise en production qui laisserait réapparaître une mention provisoire.

Performancev4.6.00c0ed67

Audit de livraison : navigation allégée de 157 Ko par page

L'ossature du site (en-tête, pied de page, assistant, réglages d'accessibilité) était reconstruite à chaque changement de page : les boutons flottants disparaissaient jusqu'à trois secondes et l'historique de conversation était perdu. Elle est désormais montée une seule fois. Une bibliothèque d'animation de 131 Ko était par ailleurs chargée sur les 42 pages, y compris celles qui n'animent rien. Neuf visuels du portfolio étaient servis en 4 914 pixels de large pour un affichage à 441 : la page passe de 3,71 à 2,30 Mo. Deux images hébergées chez un tiers étaient bloquées par la politique de sécurité du site et ne s'affichaient pas en production ; elles sont rapatriées. La case « Publicité et remarketing » du bandeau cookies était enregistrée sans jamais être appliquée — les quatre signaux de consentement sont maintenant transmis.

Nouveautév4.6.074028f8

Migration créant wizard_leads

`send-wizard-email` insère dans `public.wizard_leads` depuis avril 2026. La table n'a jamais existé : l'insertion échouait à chaque appel, et aucune demande de devis n'a été conservée. `quotes` et `contact_messages` sont à 0 ligne, la table `wizard_leads` est absente de la base — vérifié ce jour.

Nouveautév4.6.059f3198

Les deux pages sont alimentées par le dépôt

/changelog affichait un tableau saisi à la main, resté figé au 24/04/2026. Quarante commits plus tard — bascule de domaine, refonte, prérendu des 42 routes, durcissement CSP, deux audits — la page « Transparence radicale » annonçait encore l'état du site au lendemain de sa mise en ligne.

Correctifv4.6.094311fb

Chevron à la place du « + » qui pivotait en croix

L'accordéon de l'accueil était le seul du site à utiliser ce motif. Les 17 FAQ de pages service passent par AccordionTrigger, donc par un chevron : un seul geste d'ouverture sur tout le site.

Nouveautév4.6.04184486

Audit complet avant livraison

Revue de l'intégralité du dépôt sur la sécurité, le RGPD et l'AI Act, l'accessibilité, le SEO et la conversion. Correctifs majeurs : formulaire de contact durci, plafond journalier sur l'endpoint IA, hébergeur déclaré rendu cohérent entre mentions légales et pied de page, sous-traitants nommés dans la politique de confidentialité.

SEOv4.6.0beda368

16 pages service partageaient le titre de l'accueil

Conséquence directe du défaut de prérendu : seize pages de service se présentaient à Google sous un titre et une description identiques. Métadonnées propres à chacune rétablies.

SEOv4.6.071b88be

Prérendu des 42 routes du site

Le serveur renvoyait le même index.html pour toutes les pages : titre, description et Open Graph n'étaient injectés qu'après exécution du JavaScript. Tout robot qui n'exécute pas JavaScript — LinkedIn, WhatsApp, Slack, Bing, les assistants IA — ne voyait que les métadonnées de l'accueil. Chaque route est désormais servie en HTML complet.

Nouveautév4.5.0d5b7374

Trois réalisations livrées ajoutées au portfolio

Sentinel by Kayzen — pentest autonome par agents IA, produit du groupe au même titre que Nexus et DocuSur. Météo Climat France — service météo national, maille de 247 points. BTP EA. S'y ajoutent deux propositions clients.

Build & dépendancesv4.5.092ec53f

Vite 8 et Vitest 4

Montée de version de toute la chaîne de build : esbuild disparaît de l'arbre de dépendances, remplacé par rolldown et son minifieur natif oxc. L'ensemble des dépendances est à jour de ses correctifs.

Sécuritév4.5.0a797498

CSP durcie : plus aucun script inline autorisé

La politique de sécurité des contenus n'accepte plus aucun script en ligne : chaque script est identifié par une empreinte SHA-256 — l'équivalent correct d'un nonce en hébergement statique.

Build & dépendancesv4.5.0464352b

Dépendances de build mises à jour

Mise à jour de brace-expansion et gel de react-router en 6.30.4, dont les versions suivantes introduisaient une rupture d'API.

Correctifv4.4.0d966092

Le limiteur de débit du formulaire de contact tient désormais sous la charge

La table qui compte les envois par adresse se vidait lorsqu'elle débordait, ce qui relâchait la limite au moment précis où elle devait s'appliquer. L'éviction suit désormais un ordre sûr — entrées périmées, puis entrées sous le seuil — et un test de régression couvre le cas.

Designv4.4.0289c41a

Audit 150 points — design, UX, CWV, SEO/a11y, sécurité

Applique les 150 améliorations de l'audit multi-expertise (AUDIT-150.md).

Nouveautév4.4.09d14ed2

Bascule vers www.kayzen-lyon.com

Nouveau domaine public de l'agence : 250 occurrences reprises sur 63 fichiers (canoniques, sitemap, robots.txt, llms.txt, origines CORS). L'ancien domaine .fr redirige de façon permanente. Au passage, trois dépendances mises à jour.

Nouveautév4.3.0303ad67

Scores actualisés après chantier performance — Damien Mugnier 97, JUMP 83, Halles 76

Mesures Lighthouse production du jour, après optimisations déployées (CLS 0,71→0, LCP 18,1→4,5 s, −4,4 Mo d'images selon les sites).

Nouveautév4.3.0a466efd

Scores Lighthouse réels sur les 31 projets en ligne

23 sites audités ce jour (mobile, 4 axes) + les 8 phares déjà mesurés. Marqueur flagship explicite pour la section « La performance, mesurée. » ; les jauges PageSpeed s'affichent désormais sur chaque fiche projet.

SEOv4.3.0cca9aea

Balise canonique en conflit sur toutes les pages

Une balise canonique figée dans index.html se propageait à l'ensemble des pages de l'application : chacune se déclarait à Google comme étant l'accueil. Supprimée au profit de la canonique propre à chaque route.

Accessibilitév4.3.01987a30

Conformité EAA/RGAA — Lighthouse 100/100 ×8 pages + réalisations récentes en tête

Accessibilité (EAA/RGAA, WCAG 2.1 AA) : - Contrastes : terracotta 16 71% 42% (4,91:1 texte, 5,31:1 boutons), gold, muted-foreground, destructive recalibrés ; résiduels Tarifs/mockups traités - Hiérarchie de titres : h4 footer/menus → p, structure conforme - aria-label alignés sur les textes visibles (portfolio,…

Designv4.3.0b51f751

Ombres et courbes d'animation unifiées

Les valeurs d'ombre et la courbe d'accélération des accordéons deviennent des jetons du design system, au lieu d'être réécrites au cas par cas.

Nouveautév4.3.01ac42c2

Retrait des formations digitales et passage au registre premium

L'offre de formations, qui n'était plus commercialisée, disparaît du site. Purge des emojis dans les contenus, contraste du pied de page relevé.

Nouveautév4.3.0d1af998

Conformité EAA/Konforme, CRM-ERP open source, e-commerce Payload, LIDAR, photos Pexels, SEO 100/100

Nouvelle page /services/conformite-eaa (outil Konforme, EAA, RGAA/WCAG) ; suppression du service hébergement + 301 via vercel.json · Solutions IA & Métiers : sections CRM/ERP (Twenty, Odoo — réf. Hans Leutenegger) et cartographie 3D LIDAR IGN (Muller Toiture, Aéro Toit) + Nexus

Designv4.3.0797198e

Thème clair esprit Novius — accueil + chrome global

Nouveautév4.3.0de86f0a

Repositionnement Web & IA à parité — nouveaux textes validés

Héro : double accroche (site + process), sous-titre web/IA, badge Agence Web & IA · Piliers : Solutions IA & Automatisation remplace Design & Branding (Option A) · Grille services : Solutions Web + Solutions IA & Métiers en tête, carte IA enrichie MCP

Correctifv4.3.0c7032ee

Conditions commerciales alignées sur le devis réel

Échéancier de paiement 40/40/20, délais harmonisés avec le simulateur de projet, SIRET et FAQ Sites Vitrines mis en conformité.

Nouveautév4.3.07b65b12

24 nouvelles réalisations au portfolio

Captures WebP de 24 projets livrés, ajoutées à la page Réalisations.

Nouveautév4.2.0

Pages Stack, Design System & Changelog

Trois nouvelles pages publiques exposant notre infrastructure, nos tokens de design et l'évolution continue du site — transparence totale.

SEOv4.2.0

Schémas Schema.org enrichis (FAQPage, Article, CreativeWork)

Balisage structuré multi-types pour optimiser la présence dans les AI Overviews Google, Perplexity et ChatGPT Search.

Performancev4.2.0

Preview AVIF + prefetch visuel

Composant <Picture> avec AVIF/WebP/fallback automatique. Hook useVisiblePrefetch qui précharge les pages liées lors de leur apparition dans le viewport.

Designv4.2.0

Mode OLED + Konami code + Gradient Mesh animé

Mode sombre OLED pur (#000 — économie batterie), easter egg Konami, fond gradient mesh animé GPU-composited pour les pages d'accueil clés.

Nouveautév4.2.0

Preuve sociale temps réel & CTA sticky intelligent

Composant LiveSocialProof affichant l'activité récente. SmartStickyCta qui change de message selon la section du site visitée.

SEOv4.1.0

Optimisation AEO / Generative Engine Optimization

Fichier llms.txt enrichi, FAQ structurée, données chiffrées citables, questions PAA intégrées en H3.

Performancev4.0.0

Critical CSS inliné + Polices locales WOFF2

Plugin Critters actif en production. Polices Outfit et Plus Jakarta Sans auto-hébergées (zéro réseau externe, zéro CLS).

Accessibilitév3.9.0

Conformité WCAG 2.1 AA complète

Skip-link, focus-visible, contrastes audités, min-tap-target 44px, AccessibilityToggle avec mode contraste élevé et police dyslexique.

Nouveautév3.8.0

ProjectWizard — configurateur de devis interactif

Formulaire multi-étapes guidé pour obtenir un devis estimé en temps réel. Export PDF du résumé du projet.

Nouveautév3.7.0

Simulateur d'aides publiques

AidesSimulator.tsx : quiz d'éligibilité pour France Num, Atouts Numériques AuRA et chèques numériques régionaux.

SEOv3.6.0

18 pages de services + 4 pages géolocalisées

Pages pillar pour chaque service, pages locales Villeurbanne/Bron/Vénissieux avec maillage interne optimisé.

Performancev3.5.0

Lighthouse 100/100 atteint

Code-splitting agressif par route, lazy-loading des consumers framer-motion, analytics GTM différé après interaction.

Sécuritév3.4.0

CSP stricte + headers sécurité

Content-Security-Policy restrictive, HSTS preload, Permissions-Policy, COOP same-origin via vercel.json.

Designv3.3.0

Design system premium glassmorphism

Utilitaires .glass, .glass-strong, .glass-premium avec backdrop-filter optimisés, palette étendue (rose, violet, cyan, gold, indigo).

Nouveautév3.2.0

Portfolio interactif + mockups animés

Nouveaux composants mockups (Safari, iPhone, iMac) avec animations Framer Motion et parallaxe au scroll.

Nouveautév3.0.0

Refonte complète — React 18 + Vite 5 + TypeScript strict

Migration de la stack vers Vite, Tailwind CSS, shadcn/ui, Radix primitives. Zero runtime CSS, bundle < 200Ko gzipped.

Un site qui évolue avec ses métiers

Ce journal n'est pas un simple historique : c'est la promesse que votre site, s'il est créé par Kayzen Web, recevra la même attention continue. Nos clients bénéficient des améliorations documentées ici.