Eco-design of the akiani.fr website
Architecture
Static site generated with Astro. No CMS in production, no database queried on every visit. The pages are HTML files served directly.
On the browser side
No JavaScript framework on the client side. Interactions (navigation, dropdowns, scroll animations, carousels, article tables of contents, video facades) are written in vanilla JavaScript, page by page. CSS is concatenated into one bundle per page, minified, with no framework.
Media and fonts
Images in WebP, sized for their use, loaded lazily outside the viewport. Figtree and Source Serif 4 fonts, hosted on the same domain (no fonts.google.com), with a subset version limited to the glyphs used on the home page.
One blog article embeds a YouTube video, in French and in English. Checked on 14 August 2026 against the build: it is a raw iframe, with loading="lazy", with no thumbnail and no prior click. The third-party player therefore loads on scroll. The facade previously announced on this page was never built: the statement is corrected here, and the facade remains to be implemented.
Measurement
Internal audit using EcoIndex (GreenIT method), Lighthouse, and the RGESN 2024 as a reading grid. Local measurement on the production dist, 1920×1080 viewport, cache disabled, versioned scripts. See ecoindex.fr for the official method.
RGESN 2024 conformity
We ran the site through the RGESN 2024 grid (78 criteria, May 2024 version published by France's Arcep). Here's where we stand on the criteria that apply to the site.
- Conformité RGESN
- 30 % (16/54 critères applicables · cible 75 %)
- 16 conformes
- 22 à étoffer
- 12 à valider
- 2 à ouvrir/vérifier
- 24 N/A
- 2 non conformes
Performance budgets
We set two thresholds per indicator: a target we aim for, and a regression threshold that triggers a decision before deployment. It is a method safeguard, not an automated test that breaks the release. We also look separately at first-load (empty browser cache) and subsequent navigation (assets already cached), because the volume transferred is nothing alike.
| Indicateur | Cible | Seuil régression | Actuel |
|---|---|---|---|
| First-load (cache vide) | |||
| Poids transféré | 500 Ko | 1500 Ko | 580 Ko |
| Requêtes HTTP | 20 | 30 | 12 |
| CSS | 30 Ko | 50 Ko | 71 Ko |
| JavaScript | 15 Ko | 30 Ko | 10 Ko |
| Polices | 100 Ko | 150 Ko | 120 Ko |
| Nœuds DOM | 800 | 1500 | 322 |
| Subsequent page (cache chaud) | |||
| Poids transféré (navigation interne) | 50 Ko | 200 Ko | — |
| Requêtes (navigation interne) | 5 | 12 | — |
Services tiers et hébergeur
On distingue ici les briques externes utilisées telles quelles, sans contrat, de l'hébergeur qui est sous contrat dédié.
Briques externes sans contrat
- Vimeo (derrière façade) · vidéos de présentation, 24 pages · vignette auto-hébergée, iframe player.vimeo.com posée au clic uniquement · 0 Ko tant que l'internaute ne clique pas
- YouTube (iframe brute) · replay de la conférence Weezdays, un article de blog en FR et en EN · aucune, l'iframe se charge au défilement (loading=lazy) · chargement du lecteur YouTube
Hébergeur sous contrat
- OVH · hébergement mutualisé · France (Roubaix/Strasbourg)
PUE : 1.28 groupe (granularité DC non publiée) · WUE : non publié · électricité : mix français ENEDIS ≈ 21 g CO₂eq/kWh
Ce qu'il reste à travailler
Les critères listés ci-dessous demandent une justification à étoffer, un sujet à ouvrir, ou ont été marqués non conformes en l'état. Les critères qui attendent juste une nouvelle mesure ne sont pas ici, ils sont dans le JSON téléchargeable.
- 4.4 Activation utilisateur des services tiers — Contrôle du 2026-08-14 : conforme sur les 24 façades Vimeo (vignette auto-hébergée, iframe posée au clic), NON conforme sur l'article Weezdays (FR + EN), qui embarque une iframe youtube.com brute en loading=lazy. Elle se charge au défilement, sans clic ni consentement. Le critère passe donc de ok à non conforme : la version précédente décrivait une façade YouTube qui n'a jamais été posée. Correction suivie par AC-012.
- 4.6 Médias porteurs d'information uniquement — Audit 2026-05-27 : footer-anim (footer-bg-anim webm 96 Ko) et hero-anim (76 Ko) = animations décoratives. Le contenu informationnel est porté par texte + image fixe (footer-bg.webp 89 Ko fallback). Non-conformité assumée — pas de valeur informationnelle ajoutée. Mitigation par 4.15 (bouton arrêt).
- 4.12 Indiquer impacts environnementaux importants — Aucune fonctionnalité actuelle n'a un impact suffisamment significatif pour alerter — à documenter explicitement.
- 1.1 Évaluer favorablement l'utilité du service vs impacts environnementaux — Réponses aux 9 questions Designers Éthiques + arbre de conséquences ADEME Empreinte Projet niv. 1 à produire
- 1.3 Référent écoconception identifié — Référent désigné le 2026-08-14 : Sébastien Klifa, qui porte aussi l'accessibilité numérique. Le critère reste à étoffer tant que le rôle et les missions ne sont pas écrits sur la déclaration et que le suppléant n'est pas nommé.
- 1.6 Collecte responsable et raisonnée des données — Le formulaire de /contact/ collecte le nom et l'adresse email, obligatoires pour répondre, puis société, fonction, téléphone et préférence de contact, tous facultatifs. Rien d'autre : aucun compte, aucun traceur, aucun service tiers dans le traitement (endpoint contact.php sur le domaine propre). Finalités, base légale et critères de conservation sont détaillés dans la politique de confidentialité. Corrigé le 2026-08-14 : la version précédente affirmait qu'Akiani n'avait pas de formulaire actif (audit Gabriel du 2026-08-11, constat C15).
- 2.1 Définir liste des profils de matériels supportés — Documenter desktop + mobile + ancien Android (≥ 5 ans) + iPhone N-3 + MBP 2015
- 2.7 Stratégie de maintenance et de décommissionnement — Mentionner 3 sous-types : préventive (mises à jour Astro/deps), corrective (bugs), évolutive (features). Plan de fin de vie URL/contenu.
- 2.8 Imposer démarche env. aux fournisseurs — Lister fournisseurs (OVH, freelances ext.) + clauses env. ou démarche déclarée
- 3.2 Architecture adaptant ressources à la consommation — Statique pré-buildé Astro = pas d'autoscaling applicatif. Documenter dimensionnement OVH mutualisé.
- 3.7 Optimiser sollicitation environnements dev/preprod/test — Documenter la sobriété des environnements non-prod : préprod OVH coupée hors usage, CI déclenchée uniquement sur PR pertinentes, tâches lourdes (audits Lighthouse/EcoIndex en masse) planifiées en heures creuses.
- 4.1 Pas d'autoplay (animations, vidéos, sons) — Audit 2026-05-27 : footer-anim a preload='none' + JS lazy + bouton 'Arrêter l'animation' (data-footer-autoplay). MAIS vidéo démarre automatiquement au scroll → autoplay implicite. À trancher : assumer (avec contrôle utilisateur) ou retirer l'autostart (cf. AC-007).
- 4.7 Choix sobre : texte > image > audio > vidéo — Audit 2026-05-27 : vidéos blog (Miro/Spline 280-432 Ko) = justifiables (démonstration outil). Footer-anim/hero-anim = décoratif (croise 4.6). Audit page par page de chaque média à produire.
- 4.15 Mode éco / contrôle utilisateur sur impacts — Audit 2026-05-27 : bouton 'Arrêter l'animation' présent sur le footer = contrôle utilisateur granulaire. À documenter explicitement comme 'mode éco partiel' plutôt que toggle global. Le contrôle utilisateur reste exigible, indépendamment du poids global du site.
- 5.8 Stratégie d'archivage/suppression contenus obsolètes — Mettre en place un content pruning trimestriel : analytics → identifier les pages à faible valeur (ex. seuil < 10 visites/trimestre) → décision archive / fusion / dépublication, et tenir un journal des suppressions.
- 6.4 Dimensions image = dimensions d'affichage — Audit multi-dpr instrumenté le 28 mai 2026 sur 12 archétypes (183 images, viewport desktop dpr=1 + viewport mobile dpr=2). Classification : 2 sources réellement surdimensionnées même à dpr 2 mobile (mountain-bg.webp ratio linéaire 3.84×, decor__group-photo.avif ratio linéaire 2.74×) → réexport prévu (cf. AC-011). 6 images sans srcset alors que le composant Astro devrait en générer un (3 hero EDC savoir-faire, illustration-limits research, team-outdoor identité, lab hero + dark-mode-1) → cause racine identifiée (glob mal résolu + glob eager:false dans OptimizedCardImage), fix prévu (cf. AC-011). 8 thumbs blog-index avec srcset présent mais sizes mal calibré (ratio linéaire 1.53× = ~50 % trop large à dpr 1) → recalibrage BlogCard. 1 cas légitime de cover-crop (carousel tab-1.webp identité, aspect 2.74 vs 0.80). 39 SVG icônes avec attributs width/height parasites (icon-ux, icon-research, icon-ui, icon-link), sans impact poids mais à nettoyer.
- 6.5 Pas de chargement de ressources inutilisées — Audit 2026-05-27 : bundles CSS lourds (style-edc 142 Ko, style-blog-article 135 Ko, style-identite 132 Ko, style-blog 124 Ko brut) suggèrent doublons (components.css concaténé multiple fois). Cf. AC-008. Coverage DevTools sur pages représentatives recommandé.
- 7.2 Durées de conservation données et documents — Le formulaire de contact est le seul traitement du site. Les messages ne sont stockés nulle part sur le serveur : contact.php les relaie par mail vers hello@akiani.fr, boîte fournie par Google Workspace. Conservation exprimée par critères et non par durée fixe, comme le permet l'article 13-2-a du RGPD : le temps de traiter la demande et la relation qui peut en découler, le temps d'étudier le profil pour une candidature. Formulation alignée sur la politique de confidentialité (arbitrage du 2026-08-14). Reste à ouvrir : une purge périodique effective de la boîte.
- 8.1 Hébergeur ayant démarche de réduction d'empreinte — OVH n'est PAS dans liste CoC européen JRC (vérifié 2026-05-27). Documenter alternative : Climate Active OVH, ISO 14001 mutualisé, rapport RSE.
- 8.2 Politique de gestion durable des équipements (hébergeur) — Attestation OVH : cycle de vie matériel, recyclage, taux de reconditionnement
Actions en cours
- AC-002 · échéance 2026-07-15 · critères 1.1
Documenter les 9 réponses Designers Éthiques + arbre de conséquences ADEME - AC-003 · échéance 2026-06-15 · critères 1.4, 1.5
Formaliser la cadence d'audit interne d'écoconception + fixer cible chiffrée EcoIndex - AC-004 · échéance 2026-08-01 · critères 8.1, 8.2, 8.3, 8.4, 8.5
Compléter le dossier hébergeur OVH (Climate Active, ISO, PUE, électricité) - AC-005 · échéance 2026-09-01 · critères 4.15
Décision : refonte sobre (palette + animation) OU implémentation toggle mode éco fonctionnel - AC-006 · échéance 2026-06-15 · critères 6.1
Lancer premier audit complet EcoIndex × 3 passes (nominal, 3G, 4G P75) sur les 12 archétypes - AC-007 · échéance 2026-09-01 · critères 4.6, 4.7
Décider : conserver footer-anim + hero-anim (décoratives, ~170 Ko) ou retirer. Si conserver, documenter explicitement la non-conformité assumée 4.6 + le contrôle 4.15 (bouton arrêt). - AC-008 · échéance 2026-07-15 · critères 6.5
Audit bundles CSS : vérifier que components.css n'est pas concaténé plusieurs fois (style-edc 142 Ko, style-blog-article 135 Ko, style-identite 132 Ko semblent gonflés). Lancer Coverage DevTools sur les 3 archétypes les plus lourds. - AC-009 · échéance 2026-07-15 · critères 6.1
Optimiser blog/fr/ux-days-2025-resume-de-la-journee-dateliers (seule page mesurée sous grade B, score 68.9 C — DOM 549, 13 req, 804 Ko). Réduire DOM (sections h2/h3 redondantes ?) et compresser hero (115 Ko cover). - AC-010 · échéance 2026-06-30 · critères 1.4, 6.1
Compléter le script d'audit EcoIndex pour produire automatiquement les 3 passes (nominal, 3G rurale 144 Kbps, 4G P75 9 Mbps avec 100 ms de latence) avec throttling CPU sur l'ensemble des archétypes. - AC-012 · échéance 2026-09-30 · critères 4.4, 2.10
Poser une façade sur l'iframe YouTube de l'article Weezdays (FR + EN), sur le modèle des 24 façades Vimeo déjà en place : vignette auto-hébergée, iframe chargée au clic. Ouverte le 2026-08-14, après le constat que la façade YouTube décrite depuis mai n'existait pas.
Criterion-by-criterion audit
All criteria are published in a downloadable JSON file. That's what the component above reads to produce its display. The file contains the current status of each criterion, the evidence we have (when we have any), the related measurements and the open corrective actions.
What we don't know yet
- Audit interne, mené par l'outillage maison Akiani. Pas encore d'audit externe par un cabinet spécialisé.
- Les mesures EcoIndex sont calculées en local via Chrome DevTools Protocol, pas par un passage officiel sur ecoindex.fr après chaque déploiement.
- L'audit du 27 mai 2026 n'a couvert que la passe nominale. Les passes mobile 3G rurale et mobile 4G P75 sur terminal d'entrée de gamme représentatif (9 Mbps, 100 ms de latence) sont reportées à AC-010 le temps de compléter l'outillage.
- L'audit EcoIndex global sur les 347 pages n'a pas été finalisé à cette date (durée de traitement estimée au-dessus de 30 minutes). 15 archétypes ont été échantillonnés, ce qui couvre les principaux templates.
- L'audit dimensions image (taille intrinsèque vs taille d'affichage, RGESN 6.4) a été instrumenté le 28 mai 2026 sur 12 archétypes en multi-dpr (desktop dpr 1 et mobile dpr 2), avec classification automatique en quatre buckets : true-oversized, retina-no-srcset, cover-crop, svg-attrs-parasites.
- Pour la famille Algorithmie (9.1 à 9.7), tout est non applicable : aucun modèle de machine learning ou d'inférence IA n'intervient dans le service.
- Côté hébergeur OVH, le PUE et le WUE sont publiés au niveau du groupe seulement, pas par datacenter mutualisé. Ces chiffres sont repris en l'état, avec leur limite de granularité.
- Le référent écoconception est désigné depuis le 2026-08-14 (Sébastien Klifa). Son suppléant reste à nommer (AC-001).
- Les animations footer et hero de la home sont décoratives. Elles sont marquées non conformes au critère 4.6, avec une mitigation par le contrôle utilisateur (bouton 'Arrêter l'animation') côté 4.15.
Contact
To report a heavy page, a poorly optimized visual or an unnecessary resource, or to ask for clarifications on this statement, write to hello@akiani.fr.