diff --git a/package.json b/package.json
index a633f37..7888cd4 100644
--- a/package.json
+++ b/package.json
@@ -94,5 +94,10 @@
     "vite": "5.3.2",
     "vite-tsconfig-paths": "4.3.2",
     "vitest": "1.6.0"
+  },
+  "pnpm": {
+    "patchedDependencies": {
+      "@vercel/remix@2.10.0": "patches/@vercel__remix@2.10.0.patch"
+    }
   }
 }
diff --git a/patches/@vercel__remix@2.10.0.patch b/patches/@vercel__remix@2.10.0.patch
new file mode 100644
index 0000000..1150d82
--- /dev/null
+++ b/patches/@vercel__remix@2.10.0.patch
@@ -0,0 +1,14 @@
+diff --git a/server.js b/server.js
+index 1e6138e1a042e0f429998214b28592652381de98..838ccf24ace1c6d4262fe6c163206e13241e5939 100644
+--- a/server.js
++++ b/server.js
+@@ -12,8 +12,8 @@
+ 
+ Object.defineProperty(exports, '__esModule', { value: true });
+ 
+-require('./globals.js');
+ var node = require('@remix-run/node');
++node.installGlobals({ nativeFetch: true });
+ 
+ /**
+  * A function that returns the value to use as `context` in route `loader` and
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 97889f6..8832690 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -4,6 +4,11 @@ settings:
   autoInstallPeers: true
   excludeLinksFromLockfile: false
 
+patchedDependencies:
+  '@vercel/remix@2.10.0':
+    hash: eg6pwrckqivvykhwsk6rdsjwjm
+    path: patches/@vercel__remix@2.10.0.patch
+
 importers:
 
   .:
@@ -88,7 +93,7 @@ importers:
         version: 2.10.0(typescript@5.5.2)
       '@vercel/remix':
         specifier: 2.10.0
-        version: 2.10.0(@remix-run/dev@2.10.0(@remix-run/react@2.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2))(@remix-run/serve@2.10.0(typescript@5.5.2))(@types/node@20.14.9)(typescript@5.5.2)(vite@5.3.2(@types/node@20.14.9)))(@remix-run/node@2.10.0(typescript@5.5.2))(@remix-run/server-runtime@2.10.0(typescript@5.5.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
+        version: 2.10.0(patch_hash=eg6pwrckqivvykhwsk6rdsjwjm)(@remix-run/dev@2.10.0(@remix-run/react@2.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2))(@remix-run/serve@2.10.0(typescript@5.5.2))(@types/node@20.14.9)(typescript@5.5.2)(vite@5.3.2(@types/node@20.14.9)))(@remix-run/node@2.10.0(typescript@5.5.2))(@remix-run/server-runtime@2.10.0(typescript@5.5.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)
       class-variance-authority:
         specifier: 0.7.0
         version: 0.7.0
@@ -8965,7 +8970,7 @@ snapshots:
       '@babel/plugin-syntax-typescript': 7.24.7(@babel/core@7.24.7)
       '@vanilla-extract/babel-plugin-debug-ids': 1.0.6
       '@vanilla-extract/css': 1.15.3
-      esbuild: 0.17.6
+      esbuild: 0.17.19
       eval: 0.1.8
       find-up: 5.0.0
       javascript-stringify: 2.1.0
@@ -8987,7 +8992,7 @@ snapshots:
 
   '@vanilla-extract/private@1.0.5': {}
 
-  '@vercel/remix@2.10.0(@remix-run/dev@2.10.0(@remix-run/react@2.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2))(@remix-run/serve@2.10.0(typescript@5.5.2))(@types/node@20.14.9)(typescript@5.5.2)(vite@5.3.2(@types/node@20.14.9)))(@remix-run/node@2.10.0(typescript@5.5.2))(@remix-run/server-runtime@2.10.0(typescript@5.5.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
+  '@vercel/remix@2.10.0(patch_hash=eg6pwrckqivvykhwsk6rdsjwjm)(@remix-run/dev@2.10.0(@remix-run/react@2.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2))(@remix-run/serve@2.10.0(typescript@5.5.2))(@types/node@20.14.9)(typescript@5.5.2)(vite@5.3.2(@types/node@20.14.9)))(@remix-run/node@2.10.0(typescript@5.5.2))(@remix-run/server-runtime@2.10.0(typescript@5.5.2))(react-dom@18.3.1(react@18.3.1))(react@18.3.1)':
     dependencies:
       '@remix-run/dev': 2.10.0(@remix-run/react@2.10.0(react-dom@18.3.1(react@18.3.1))(react@18.3.1)(typescript@5.5.2))(@remix-run/serve@2.10.0(typescript@5.5.2))(@types/node@20.14.9)(typescript@5.5.2)(vite@5.3.2(@types/node@20.14.9))
       '@remix-run/node': 2.10.0(typescript@5.5.2)