diff --git a/astro.config.mjs b/astro.config.mjs
index fa66348..8c35a60 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -12,16 +12,16 @@ export default defineConfig({
   image: {
     domains: ["images.unsplash.com"],
   },
-  i18n: {
-    defaultLocale: "en",
-    locales: ["en", "fr"],
-    fallback: {
-      fr: "en",
-    },
-    routing: {
-      prefixDefaultLocale: false,
-    },
-  },
+  // i18n: {
+  //   defaultLocale: "en",
+  //   locales: ["en", "fr"],
+  //   fallback: {
+  //     fr: "en",
+  //   },
+  //   routing: {
+  //     prefixDefaultLocale: false,
+  //   },
+  // },
   prefetch: true,
   integrations: [
     tailwind(),
@@ -37,6 +37,11 @@ export default defineConfig({
     starlight({
       title: "ScrewFast Docs",
       defaultLocale: "root",
+      // https://github.com/withastro/starlight/blob/main/packages/starlight/CHANGELOG.md
+      // If no Astro and Starlight i18n configurations are provided, the built-in default locale is used in Starlight and a matching Astro i18n configuration is generated/used.
+      // If only a Starlight i18n configuration is provided, an equivalent Astro i18n configuration is generated/used.
+      // If only an Astro i18n configuration is provided, the Starlight i18n configuration is updated to match it.
+      // If both an Astro and Starlight i18n configurations are provided, an error is thrown.
       locales: {
         root: {
           label: "English",
diff --git a/package-lock.json b/package-lock.json
index e4a528a..abd5d2e 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,11 +9,11 @@
       "dependencies": {
         "@astrojs/check": "^0.7.0",
         "@astrojs/sitemap": "^3.1.5",
-        "@astrojs/starlight": "^0.23.2",
+        "@astrojs/starlight": "^0.24.2",
         "@astrojs/starlight-tailwind": "^2.0.3",
         "@astrojs/tailwind": "^5.1.0",
+        "astro": "^4.10.2",
         "@astrojs/vercel": "^7.6.0",
-        "astro": "^4.10.1",
         "astro-compressor": "^0.4.1",
         "globby": "^14.0.1",
         "gsap": "^3.12.5",
@@ -147,14 +147,14 @@
       }
     },
     "node_modules/@astrojs/mdx": {
-      "version": "3.0.1",
-      "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-3.0.1.tgz",
-      "integrity": "sha512-UcPja14Qt6OEm7Wjak41Qa5f7G1M0oB2ARCsyIkXy6+Z65fJ6c1648UqEOqnEgR6Xtqq+V47wtK2qSP6KQKrAg==",
+      "version": "3.1.0",
+      "resolved": "https://registry.npmjs.org/@astrojs/mdx/-/mdx-3.1.0.tgz",
+      "integrity": "sha512-yuGDaOcCAfYgLQvUAlJDezYGK4twHlzW1Kvpyg3inxtDJuAsHdyVyYLWl0Wo5nwkyrbZktdrjnoW5scqzoAqAg==",
       "dependencies": {
         "@astrojs/markdown-remark": "5.1.0",
         "@mdx-js/mdx": "^3.0.1",
         "acorn": "^8.11.3",
-        "es-module-lexer": "^1.5.2",
+        "es-module-lexer": "^1.5.3",
         "estree-util-visit": "^2.0.0",
         "github-slugger": "^2.0.0",
         "gray-matter": "^4.0.3",
@@ -329,21 +329,21 @@
       }
     },
     "node_modules/@astrojs/starlight": {
-      "version": "0.23.2",
-      "resolved": "https://registry.npmjs.org/@astrojs/starlight/-/starlight-0.23.2.tgz",
-      "integrity": "sha512-j8odYR744qCilip9s0UXNzDQ66uu1klD24zRI5Aqzxoj01eVnAsEgDPC8rU/gDTvydKWhF5diBRC1QVDN5JIYw==",
+      "version": "0.24.2",
+      "resolved": "https://registry.npmjs.org/@astrojs/starlight/-/starlight-0.24.2.tgz",
+      "integrity": "sha512-hXFVBHcr2a4UwX5GDCNQEZsRXdgVlNzZ7txpI2jlMvtzbgfoLEGOHjaHpB5QTW/OCrRAMjcx9Zx0HxRliohaxQ==",
       "dependencies": {
-        "@astrojs/mdx": "^3.0.0",
-        "@astrojs/sitemap": "^3.0.5",
+        "@astrojs/mdx": "^3.1.0",
+        "@astrojs/sitemap": "^3.1.5",
         "@pagefind/default-ui": "^1.0.3",
-        "@types/hast": "^3.0.3",
-        "@types/mdast": "^4.0.3",
-        "astro-expressive-code": "^0.35.2",
+        "@types/hast": "^3.0.4",
+        "@types/mdast": "^4.0.4",
+        "astro-expressive-code": "^0.35.3",
         "bcp-47": "^2.1.0",
         "hast-util-from-html": "^2.0.1",
         "hast-util-select": "^6.0.2",
         "hast-util-to-string": "^3.0.0",
-        "hastscript": "^8.0.0",
+        "hastscript": "^9.0.0",
         "mdast-util-directive": "^3.0.0",
         "mdast-util-to-markdown": "^2.1.0",
         "pagefind": "^1.0.3",
@@ -368,6 +368,22 @@
         "tailwindcss": "^3.3.3"
       }
     },
+    "node_modules/@astrojs/starlight/node_modules/hastscript": {
+      "version": "9.0.0",
+      "resolved": "https://registry.npmjs.org/hastscript/-/hastscript-9.0.0.tgz",
+      "integrity": "sha512-jzaLBGavEDKHrc5EfFImKN7nZKKBdSLIdGvCwDZ9TfzbF2ffXiov8CKE445L2Z1Ek2t/m4SKQ2j6Ipv7NyUolw==",
+      "dependencies": {
+        "@types/hast": "^3.0.0",
+        "comma-separated-tokens": "^2.0.0",
+        "hast-util-parse-selector": "^4.0.0",
+        "property-information": "^6.0.0",
+        "space-separated-tokens": "^2.0.0"
+      },
+      "funding": {
+        "type": "opencollective",
+        "url": "https://opencollective.com/unified"
+      }
+    },
     "node_modules/@astrojs/tailwind": {
       "version": "5.1.0",
       "resolved": "https://registry.npmjs.org/@astrojs/tailwind/-/tailwind-5.1.0.tgz",
@@ -400,15 +416,15 @@
       }
     },
     "node_modules/@astrojs/vercel": {
-      "version": "7.6.0",
-      "resolved": "https://registry.npmjs.org/@astrojs/vercel/-/vercel-7.6.0.tgz",
-      "integrity": "sha512-LLOpXWYwTlYgZJCC+ulCpSUnUzOzLrlna2T0WCkhkH1UeavBY5NI0Agpq3rcQd012I7Vr2io+ZKUgKGW+EFvhg==",
+      "version": "7.7.0",
+      "resolved": "https://registry.npmjs.org/@astrojs/vercel/-/vercel-7.7.0.tgz",
+      "integrity": "sha512-VX74OqFDDKH2uYpnbN4FZ5BrJZRzLcbGz2H6JOAIdqm+Q/ZcfFn9WC41QxHVtp1JcwX5QKHeEgbqiCNYnnUt9A==",
       "dependencies": {
         "@astrojs/internal-helpers": "0.4.0",
-        "@vercel/analytics": "^1.2.2",
+        "@vercel/analytics": "^1.3.1",
         "@vercel/edge": "^1.1.1",
-        "@vercel/nft": "^0.26.5",
-        "esbuild": "^0.21.1",
+        "@vercel/nft": "^0.27.2",
+        "esbuild": "^0.21.5",
         "fast-glob": "^3.3.2",
         "set-cookie-parser": "^2.6.0",
         "web-vitals": "^3.5.2"
@@ -2126,9 +2142,11 @@
       ]
     },
     "node_modules/@shikijs/core": {
-      "version": "1.6.3",
-      "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.6.3.tgz",
-      "integrity": "sha512-QnJKHFUW95GnlJLJGP6QLx4M69HM0KlXk+R2Y8lr/x4nAx1Yb/lsuxq4XwybuUjTxbJk+BT0g/kvn0bcsjGGHg=="
+
+      "version": "1.6.4",
+      "resolved": "https://registry.npmjs.org/@shikijs/core/-/core-1.6.4.tgz",
+      "integrity": "sha512-WTU9rzZae1p2v6LOxMf6LhtmZOkIHYYW160IuahUyJy7YXPPjyWZLR1ag+SgD22ZMxZtz1gfU6Tccc8t0Il/XA=="
+
     },
     "node_modules/@sindresorhus/merge-streams": {
       "version": "2.3.0",
@@ -2290,9 +2308,9 @@
       "integrity": "sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ=="
     },
     "node_modules/@vercel/analytics": {
-      "version": "1.2.2",
-      "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.2.2.tgz",
-      "integrity": "sha512-X0rctVWkQV1e5Y300ehVNqpOfSOufo7ieA5PIdna8yX/U7Vjz0GFsGf4qvAhxV02uQ2CVt7GYcrFfddXXK2Y4A==",
+      "version": "1.3.1",
+      "resolved": "https://registry.npmjs.org/@vercel/analytics/-/analytics-1.3.1.tgz",
+      "integrity": "sha512-xhSlYgAuJ6Q4WQGkzYTLmXwhYl39sWjoMA3nHxfkvG+WdBT25c563a7QhwwKivEOZtPJXifYHR1m2ihoisbWyA==",
       "dependencies": {
         "server-only": "^0.0.1"
       },
@@ -2315,14 +2333,14 @@
       "integrity": "sha512-NtKiIbn9Cq6HWGy+qRudz28mz5nxfOJWls5Pnckjw1yCfSX8rhXdvY/il3Sy3Zd5n/sKCM2h7VSCCpJF/oaDrQ=="
     },
     "node_modules/@vercel/nft": {
-      "version": "0.26.5",
-      "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.26.5.tgz",
-      "integrity": "sha512-NHxohEqad6Ra/r4lGknO52uc/GrWILXAMs1BB4401GTqww0fw1bAqzpG1XHuDO+dprg4GvsD9ZLLSsdo78p9hQ==",
+      "version": "0.27.2",
+      "resolved": "https://registry.npmjs.org/@vercel/nft/-/nft-0.27.2.tgz",
+      "integrity": "sha512-7LeioS1yE5hwPpQfD3DdH04tuugKjo5KrJk3yK5kAI3Lh76iSsK/ezoFQfzuT08X3ZASQOd1y9ePjLNI9+TxTQ==",
       "dependencies": {
         "@mapbox/node-pre-gyp": "^1.0.5",
         "@rollup/pluginutils": "^4.0.0",
         "acorn": "^8.6.0",
-        "acorn-import-attributes": "^1.9.2",
+        "acorn-import-attributes": "^1.9.5",
         "async-sema": "^3.1.1",
         "bindings": "^1.4.0",
         "estree-walker": "2.0.2",
@@ -2580,6 +2598,7 @@
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz",
       "integrity": "sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw==",
+      "deprecated": "This package is no longer supported.",
       "dependencies": {
         "delegates": "^1.0.0",
         "readable-stream": "^3.6.0"
@@ -2624,20 +2643,20 @@
       }
     },
     "node_modules/astro": {
-      "version": "4.10.1",
-      "resolved": "https://registry.npmjs.org/astro/-/astro-4.10.1.tgz",
-      "integrity": "sha512-7bbnUX1CW+12suz0Do8ef1CihqVjDyUW/H/0piNHZyBE3W/VFt5GP5ZxlPzzJLoGtaXif0aXJ4iPurEem2LpdA==",
+      "version": "4.10.2",
+      "resolved": "https://registry.npmjs.org/astro/-/astro-4.10.2.tgz",
+      "integrity": "sha512-SBdkoOanPsxKlKVU4uu/XG0G7NYAFoqmfBtq9SPMJ34B7Hr1MxVdEugERs8IwYN6UaxdDVcqA++9PvH6Onq2cg==",
       "dependencies": {
         "@astrojs/compiler": "^2.8.0",
         "@astrojs/internal-helpers": "0.4.0",
         "@astrojs/markdown-remark": "5.1.0",
         "@astrojs/telemetry": "3.1.0",
-        "@babel/core": "^7.24.6",
-        "@babel/generator": "^7.24.6",
-        "@babel/parser": "^7.24.6",
-        "@babel/plugin-transform-react-jsx": "^7.24.6",
-        "@babel/traverse": "^7.24.6",
-        "@babel/types": "^7.24.6",
+        "@babel/core": "^7.24.7",
+        "@babel/generator": "^7.24.7",
+        "@babel/parser": "^7.24.7",
+        "@babel/plugin-transform-react-jsx": "^7.24.7",
+        "@babel/traverse": "^7.24.7",
+        "@babel/types": "^7.24.7",
         "@types/babel__core": "^7.20.5",
         "@types/cookie": "^0.6.0",
         "acorn": "^8.11.3",
@@ -2650,14 +2669,14 @@
         "common-ancestor-path": "^1.0.1",
         "cookie": "^0.6.0",
         "cssesc": "^3.0.0",
-        "debug": "^4.3.4",
+        "debug": "^4.3.5",
         "deterministic-object-hash": "^2.0.2",
         "devalue": "^5.0.0",
         "diff": "^5.2.0",
         "dlv": "^1.1.3",
         "dset": "^3.1.3",
         "es-module-lexer": "^1.5.3",
-        "esbuild": "^0.21.4",
+        "esbuild": "^0.21.5",
         "estree-walker": "^3.0.3",
         "execa": "^8.0.1",
         "fast-glob": "^3.3.2",
@@ -2679,13 +2698,13 @@
         "rehype": "^13.0.1",
         "resolve": "^1.22.8",
         "semver": "^7.6.2",
-        "shiki": "^1.6.1",
+        "shiki": "^1.6.3",
         "string-width": "^7.1.0",
         "strip-ansi": "^7.1.0",
         "tsconfck": "^3.1.0",
         "unist-util-visit": "^5.0.0",
         "vfile": "^6.0.1",
-        "vite": "^5.2.12",
+        "vite": "^5.2.13",
         "vitefu": "^0.2.5",
         "which-pm": "^2.2.0",
         "yargs-parser": "^21.1.1",
@@ -3415,9 +3434,9 @@
       }
     },
     "node_modules/debug": {
-      "version": "4.3.4",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-      "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
+      "version": "4.3.5",
+      "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz",
+      "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==",
       "dependencies": {
         "ms": "2.1.2"
       },
@@ -3954,6 +3973,7 @@
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz",
       "integrity": "sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q==",
+      "deprecated": "This package is no longer supported.",
       "dependencies": {
         "aproba": "^1.0.3 || ^2.0.0",
         "color-support": "^1.1.2",
@@ -4058,6 +4078,7 @@
       "version": "7.2.3",
       "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
       "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+      "deprecated": "Glob versions prior to v9 are no longer supported",
       "dependencies": {
         "fs.realpath": "^1.0.0",
         "inflight": "^1.0.4",
@@ -4599,6 +4620,7 @@
       "version": "1.0.6",
       "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
       "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+      "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
       "dependencies": {
         "once": "^1.3.0",
         "wrappy": "1"
@@ -6398,6 +6420,7 @@
       "version": "5.0.1",
       "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz",
       "integrity": "sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw==",
+      "deprecated": "This package is no longer supported.",
       "dependencies": {
         "are-we-there-yet": "^2.0.0",
         "console-control-strings": "^1.1.0",
@@ -7844,6 +7867,7 @@
       "version": "3.0.2",
       "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz",
       "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==",
+      "deprecated": "Rimraf versions prior to v4 are no longer supported",
       "dependencies": {
         "glob": "^7.1.3"
       },
@@ -8056,11 +8080,12 @@
       }
     },
     "node_modules/shiki": {
-      "version": "1.6.3",
-      "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.6.3.tgz",
-      "integrity": "sha512-lE1/YGlzFY0hQSyEfsZj18xGrTWxyhFQkaiILALqTBZPbJeYFWpbUhlmTGPOupYB/qC+H6sV4UznJzcEh3WMHQ==",
+      "version": "1.6.4",
+      "resolved": "https://registry.npmjs.org/shiki/-/shiki-1.6.4.tgz",
+      "integrity": "sha512-X88chM7w8jnadoZtjPTi5ahCJx9pc9f8GfEkZAEYUTlcUZIEw2D/RY86HI/LkkE7Nj8TQWkiBfaFTJ3VJT6ESg==",
       "dependencies": {
-        "@shikijs/core": "1.6.3"
+        "@shikijs/core": "1.6.4"
+
       }
     },
     "node_modules/signal-exit": {
diff --git a/package.json b/package.json
index 5ff0d98..f27493c 100644
--- a/package.json
+++ b/package.json
@@ -12,11 +12,11 @@
   "dependencies": {
     "@astrojs/check": "^0.7.0",
     "@astrojs/sitemap": "^3.1.5",
-    "@astrojs/starlight": "^0.23.2",
+    "@astrojs/starlight": "^0.24.2",
     "@astrojs/starlight-tailwind": "^2.0.3",
     "@astrojs/tailwind": "^5.1.0",
-    "@astrojs/vercel": "^7.6.0",
-    "astro": "^4.10.1",
+    "@astrojs/vercel": "^7.7.0",
+    "astro": "^4.10.2",
     "astro-compressor": "^0.4.1",
     "globby": "^14.0.1",
     "gsap": "^3.12.5",
diff --git a/src/pages/fr/blog/index.astro b/src/pages/fr/blog/index.astro
index b83b689..c6b4539 100644
--- a/src/pages/fr/blog/index.astro
+++ b/src/pages/fr/blog/index.astro
@@ -37,7 +37,7 @@ const secondSubTitle: string =
 const pageTitle: string = `Blog | ${SITE.title}`;
 ---
 
-<MainLayout
+<MainLayout lang="fr"
   title={pageTitle}
   structuredData={{
     "@context": "https://schema.org",