<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://emilienpons.fr/</loc>
    <changefreq>monthly</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/fr</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog</loc>
    <changefreq>weekly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/pwa-service-workers-offline</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/pwa-service-workers-offline-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-universal-seo-technique</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-universal-seo-technique-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/design-systems-angular-tailwind</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/design-systems-angular-tailwind-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/validators-personnalises-cross-field-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/validators-personnalises-cross-field-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ngrx-signalstore-vs-service-signaux</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ngrx-signalstore-vs-service-signaux-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/cicd-angular-github-actions</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/cicd-angular-github-actions-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/nginx-spa-404-errors</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/nginx-spa-404-errors-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/dockeriser-app-angular-production</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/dockeriser-app-angular-production-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/csrf-xss-httponly-cookies-securite</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/csrf-xss-httponly-cookies-securite-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/csrf-xss-httponly-cookies-securite-web</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/csrf-xss-httponly-cookies-securite-web-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/feature-based-vs-layered-architecture</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/feature-based-vs-layered-architecture-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-universal-seo-technique-au-dela-du-rendu-serveur</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-universal-seo-technique-au-dela-du-rendu-serveur-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-devtools-debugging-guide</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-devtools-debugging-guide-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/inject-vs-constructor-angular-dependency-injection</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/inject-vs-constructor-angular-dependency-injection-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/animations-performantes-web-animations-api</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/animations-performantes-web-animations-api-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/e2e-playwright-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/e2e-playwright-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/capacitor-deployer-web-app-ios-android</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/capacitor-deployer-web-app-ios-android-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/capacitor-plugins-natifs-camera-biometrie-notifications</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/capacitor-plugins-natifs-camera-biometrie-notifications-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/core-web-vitals-lcp-spa-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/core-web-vitals-lcp-spa-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/architecture-feature-based-vs-layered-au-dela-du-choix</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/architecture-feature-based-vs-layered-au-dela-du-choix-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ngrx-signalstore-vs-service-signaux-2026</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ngrx-signalstore-vs-service-signaux-2026-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/e2e-playwright-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/e2e-playwright-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/control-flow-if-for-switch-angular-17</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/control-flow-if-for-switch-angular-17-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/webassembly-quand-utiliser-web-app</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/webassembly-quand-utiliser-web-app-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/webassembly-quand-utiliser-web-app</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/webassembly-quand-utiliser-web-app-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/rest-avance-intercepteurs-retry-backoff</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/rest-avance-intercepteurs-retry-backoff-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/migration-angular-18-19-changements</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/migration-angular-18-19-changements-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/gestion-erreurs-globale-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/gestion-erreurs-globale-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ngrx-quand-ne-pas-utiliser</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ngrx-quand-ne-pas-utiliser-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ci-cd-angular-github-actions-advanced</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ci-cd-angular-github-actions-advanced-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ngrx-signalstore-vs-service-signaux-2025</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ngrx-signalstore-vs-service-signaux-2025-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/core-web-vitals-lcp-spa-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/core-web-vitals-lcp-spa-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/standalone-components-migration-ngmodules</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/standalone-components-migration-ngmodules-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/design-systems-angular-tailwind-tokens-et-theming</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/design-systems-angular-tailwind-tokens-et-theming-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/web-workers-deporter-calcul-lourd-thread-principal</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/web-workers-deporter-calcul-lourd-thread-principal-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/graphql-apollo-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/graphql-apollo-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/webassembly-quand-utiliser-web-app</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/webassembly-quand-utiliser-web-app-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-hydration-flash-contenu</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-hydration-flash-contenu-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/module-federation-angular-micro-frontends</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/module-federation-angular-micro-frontends-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/webassembly-quand-utiliser-web-app</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/webassembly-quand-utiliser-web-app-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/e2e-playwright-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/e2e-playwright-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/jwt-guards-angular-authentification</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/jwt-guards-angular-authentification-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/changedetection-onpush-zoneless-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/changedetection-onpush-zoneless-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ionic-vs-angular-material-2025</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ionic-vs-angular-material-2025-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/e2e-playwright-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/e2e-playwright-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/bundle-splitting-tree-shaking-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/bundle-splitting-tree-shaking-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/migration-angular-18-19</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/migration-angular-18-19-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/typescript-strict-typer-templates</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/typescript-strict-typer-templates-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/typescript-strict-typer-templates</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/typescript-strict-typer-templates-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/jest-vitest-cypress-angular-comparaison</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/jest-vitest-cypress-angular-comparaison-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-universal-seo-au-dela-du-rendu</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-universal-seo-au-dela-du-rendu-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ionic-vs-angular-material-2025</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ionic-vs-angular-material-2025-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ci-cd-angular-github-actions-avance</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/ci-cd-angular-github-actions-avance-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/nginx-spa-fallback-routing-advanced</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/nginx-spa-fallback-routing-advanced-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/inject-vs-constructeur-2025</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/inject-vs-constructeur-2025-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/dataviz-chartjs-echarts-d3-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/dataviz-chartjs-echarts-d3-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/sitemap-dynamique-spa-indexation-google</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/sitemap-dynamique-spa-indexation-google-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/edge-functions-angular-deployer-edge</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/edge-functions-angular-deployer-edge-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/edge-functions-angular-deployer</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/edge-functions-angular-deployer-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/pwa-service-workers-cache-strategies-offline</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/pwa-service-workers-cache-strategies-offline-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-universal-seo-au-dela-rendu-serveur</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-universal-seo-au-dela-rendu-serveur-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/virtual-scroll-10000-items</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/virtual-scroll-10000-items-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/streaming-reponses-llm-sse-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/streaming-reponses-llm-sse-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/rxjs-vers-signals-tosignal-toobservable</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/rxjs-vers-signals-tosignal-toobservable-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/standalone-components-migration-ngmodules</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/standalone-components-migration-ngmodules-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/pwa-service-workers-cache-strategies</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/pwa-service-workers-cache-strategies-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/audit-dependances-npm-supply-chain</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/audit-dependances-npm-supply-chain-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-hydration-flash-contenu</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-hydration-flash-contenu-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/capacitor-deployer-web-app-ios-android</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/capacitor-deployer-web-app-ios-android-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/rest-avance-intercepteurs-retry-backoff</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/rest-avance-intercepteurs-retry-backoff-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/rxjs-vers-signals-tosignal-toobservable</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/rxjs-vers-signals-tosignal-toobservable-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/firebase-angular-auth-firestore-hosting</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/firebase-angular-auth-firestore-hosting-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/virtual-scroll-10000-items</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/virtual-scroll-10000-items-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/dark-mode-css-moderne-variables</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/dark-mode-css-moderne-variables-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/json-ld-structured-data-blog-technique-seo</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/json-ld-structured-data-blog-technique-seo-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/gestion-erreurs-globale-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/gestion-erreurs-globale-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/securite-csrf-xss-httponly-cookies-au-dela-des-buzzwords</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/securite-csrf-xss-httponly-cookies-au-dela-des-buzzwords-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/capacitor-deployer-web-app-ios-android</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/capacitor-deployer-web-app-ios-android-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/optimiser-images-ng-srcset-lazy-loading-natif</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/optimiser-images-ng-srcset-lazy-loading-natif-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/optimiser-liste-10000-items-virtual-scroll</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/optimiser-liste-10000-items-virtual-scroll-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-signals-computed-vs-derived-state</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/angular-signals-computed-vs-derived-state-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/pwa-service-workers-offline-strategy-cache-first</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/pwa-service-workers-offline-strategy-cache-first-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/web-components-angular-elements</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/web-components-angular-elements-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/inp-rendre-app-angular-reactive</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/inp-rendre-app-angular-reactive-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/e2e-playwright-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/e2e-playwright-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/e2e-playwright-angular-app</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/e2e-playwright-angular-app-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/websockets-temps-reel-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/websockets-temps-reel-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/control-flow-if-for-switch-angular-17</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/control-flow-if-for-switch-angular-17-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/dataviz-chartjs-echarts-d3-angular</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/dataviz-chartjs-echarts-d3-angular-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/web-components-angular-elements</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://emilienpons.fr/blog/web-components-angular-elements-en</loc>
    <changefreq>monthly</changefreq>
    <priority>0.6</priority>
  </url>
</urlset>
