Stack
- Nuxt 4 (SSR)Vue 3 + TS strict
- PiniaÉtat global
- @tanstack/vue-queryCache API + prefetch
- @vueuse/coreComposables utilitaires
- SCSS modulaireVariables + mixins
- Lato + Fira Codevia @nuxt/fonts
- @nuxt/image (IPX)AVIF / WebP / PNG
- @nuxtjs/seoSitemap + robots + schema.org
- OG images dynamiquesSatori par slug
- Atom + JSON Feed/feed.xml, /feed.json
- View Transitions APIMorph hero + titre
- Web VitalsSample 20 % en prod
- Lighthouse CISeuils par route
- Grafana + Loki + PrometheusStack monitoring Docker
- Vitest + vitest-axeUnit + a11y smoke
- ESLint + StylelintRules a11y incluses
- GitLab CIvalidate / test / security / build / deploy
- Django 5 + DRFPython 3.13
- PostgreSQL 17SearchVector full-text
- Celery + RedisJobs asynchrones
Métriques en temps réel
Extraits agrégés depuis l'endpoint interne Web Vitals (p75 sur 30 jours). Les seuils CWV Google sont appliqués tel quel.
Chargement des métriques…
Build & budget
- Objectif Lighthouse
- Performance ≥ 90, A11y ≥ 95, Best Practices ≥ 95, SEO ≥ 95
- Budget bundle client
- Core Vendor < 120 kB gzip · Route-specifique < 30 kB gzip
- Mode offline
- Articles en stale-while-revalidate (24 h) via service worker
- Tests
- Vitest (unit + a11y via axe-core) dans la CI GitLab à chaque MR