diff --git a/app/package-lock.json b/app/package-lock.json
index 39f43b6e..c147751c 100644
--- a/app/package-lock.json
+++ b/app/package-lock.json
@@ -20,7 +20,7 @@
 				"@trpc/server": "^10.43.3",
 				"@vercel/analytics": "^1.3.1",
 				"bcryptjs": "^2.4.3",
-				"next": "^14.2.15",
+				"next": "^15.0.0",
 				"next-auth": "4.24.8",
 				"next-share": "^0.27.0",
 				"nodemailer": "^6.9.15",
@@ -1021,9 +1021,9 @@
 			}
 		},
 		"node_modules/@next/env": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.15.tgz",
-			"integrity": "sha512-S1qaj25Wru2dUpcIZMjxeMVSwkt8BK4dmWHHiBuRstcIyOsMapqT4A4jSB6onvqeygkSSmOkyny9VVx8JIGamQ=="
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.0.tgz",
+			"integrity": "sha512-Mcv8ZVmEgTO3bePiH/eJ7zHqQEs2gCqZ0UId2RxHmDDc7Pw6ngfSrOFlxG8XDpaex+n2G+TKPsQAf28MO+88Gw=="
 		},
 		"node_modules/@next/eslint-plugin-next": {
 			"version": "15.0.0",
@@ -1051,9 +1051,9 @@
 			}
 		},
 		"node_modules/@next/swc-darwin-arm64": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.15.tgz",
-			"integrity": "sha512-Rvh7KU9hOUBnZ9TJ28n2Oa7dD9cvDBKua9IKx7cfQQ0GoYUwg9ig31O2oMwH3wm+pE3IkAQ67ZobPfEgurPZIA==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.0.tgz",
+			"integrity": "sha512-Gjgs3N7cFa40a9QT9AEHnuGKq69/bvIOn0SLGDV+ordq07QOP4k1GDOVedMHEjVeqy1HBLkL8rXnNTuMZIv79A==",
 			"cpu": [
 				"arm64"
 			],
@@ -1066,9 +1066,9 @@
 			}
 		},
 		"node_modules/@next/swc-darwin-x64": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.15.tgz",
-			"integrity": "sha512-5TGyjFcf8ampZP3e+FyCax5zFVHi+Oe7sZyaKOngsqyaNEpOgkKB3sqmymkZfowy3ufGA/tUgDPPxpQx931lHg==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.0.tgz",
+			"integrity": "sha512-BUtTvY5u9s5berAuOEydAUlVMjnl6ZjXS+xVrMt317mglYZ2XXjY8YRDCaz9vYMjBNPXH8Gh75Cew5CMdVbWTw==",
 			"cpu": [
 				"x64"
 			],
@@ -1081,9 +1081,9 @@
 			}
 		},
 		"node_modules/@next/swc-linux-arm64-gnu": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.15.tgz",
-			"integrity": "sha512-3Bwv4oc08ONiQ3FiOLKT72Q+ndEMyLNsc/D3qnLMbtUYTQAmkx9E/JRu0DBpHxNddBmNT5hxz1mYBphJ3mfrrw==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.0.tgz",
+			"integrity": "sha512-sbCoEpuWUBpYoLSgYrk0CkBv8RFv4ZlPxbwqRHr/BWDBJppTBtF53EvsntlfzQJ9fosYX12xnS6ltxYYwsMBjg==",
 			"cpu": [
 				"arm64"
 			],
@@ -1096,9 +1096,9 @@
 			}
 		},
 		"node_modules/@next/swc-linux-arm64-musl": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.15.tgz",
-			"integrity": "sha512-k5xf/tg1FBv/M4CMd8S+JL3uV9BnnRmoe7F+GWC3DxkTCD9aewFRH1s5rJ1zkzDa+Do4zyN8qD0N8c84Hu96FQ==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.0.tgz",
+			"integrity": "sha512-JAw84qfL81aQCirXKP4VkgmhiDpXJupGjt8ITUkHrOVlBd+3h5kjfPva5M0tH2F9KKSgJQHEo3F5S5tDH9h2ww==",
 			"cpu": [
 				"arm64"
 			],
@@ -1111,9 +1111,9 @@
 			}
 		},
 		"node_modules/@next/swc-linux-x64-gnu": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.15.tgz",
-			"integrity": "sha512-kE6q38hbrRbKEkkVn62reLXhThLRh6/TvgSP56GkFNhU22TbIrQDEMrO7j0IcQHcew2wfykq8lZyHFabz0oBrA==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.0.tgz",
+			"integrity": "sha512-r5Smd03PfxrGKMewdRf2RVNA1CU5l2rRlvZLQYZSv7FUsXD5bKEcOZ/6/98aqRwL7diXOwD8TCWJk1NbhATQHg==",
 			"cpu": [
 				"x64"
 			],
@@ -1126,9 +1126,9 @@
 			}
 		},
 		"node_modules/@next/swc-linux-x64-musl": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.15.tgz",
-			"integrity": "sha512-PZ5YE9ouy/IdO7QVJeIcyLn/Rc4ml9M2G4y3kCM9MNf1YKvFY4heg3pVa/jQbMro+tP6yc4G2o9LjAz1zxD7tQ==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.0.tgz",
+			"integrity": "sha512-fM6qocafz4Xjhh79CuoQNeGPhDHGBBUbdVtgNFJOUM8Ih5ZpaDZlTvqvqsh5IoO06CGomxurEGqGz/4eR/FaMQ==",
 			"cpu": [
 				"x64"
 			],
@@ -1141,9 +1141,9 @@
 			}
 		},
 		"node_modules/@next/swc-win32-arm64-msvc": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.15.tgz",
-			"integrity": "sha512-2raR16703kBvYEQD9HNLyb0/394yfqzmIeyp2nDzcPV4yPjqNUG3ohX6jX00WryXz6s1FXpVhsCo3i+g4RUX+g==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.0.tgz",
+			"integrity": "sha512-ZOd7c/Lz1lv7qP/KzR513XEa7QzW5/P0AH3A5eR1+Z/KmDOvMucht0AozccPc0TqhdV1xaXmC0Fdx0hoNzk6ng==",
 			"cpu": [
 				"arm64"
 			],
@@ -1155,25 +1155,10 @@
 				"node": ">= 10"
 			}
 		},
-		"node_modules/@next/swc-win32-ia32-msvc": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.15.tgz",
-			"integrity": "sha512-fyTE8cklgkyR1p03kJa5zXEaZ9El+kDNM5A+66+8evQS5e/6v0Gk28LqA0Jet8gKSOyP+OTm/tJHzMlGdQerdQ==",
-			"cpu": [
-				"ia32"
-			],
-			"optional": true,
-			"os": [
-				"win32"
-			],
-			"engines": {
-				"node": ">= 10"
-			}
-		},
 		"node_modules/@next/swc-win32-x64-msvc": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.15.tgz",
-			"integrity": "sha512-SzqGbsLsP9OwKNUG9nekShTwhj6JSB9ZLMWQ8g1gG6hdE5gQLncbnbymrwy2yVmH9nikSLYRYxYMFu78Ggp7/g==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.0.tgz",
+			"integrity": "sha512-2RVWcLtsqg4LtaoJ3j7RoKpnWHgcrz5XvuUGE7vBYU2i6M2XeD9Y8RlLaF770LEIScrrl8MdWsp6odtC6sZccg==",
 			"cpu": [
 				"x64"
 			],
@@ -2525,11 +2510,10 @@
 			"integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="
 		},
 		"node_modules/@swc/helpers": {
-			"version": "0.5.5",
-			"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
-			"integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
+			"version": "0.5.13",
+			"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz",
+			"integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==",
 			"dependencies": {
-				"@swc/counter": "^0.1.3",
 				"tslib": "^2.4.0"
 			}
 		},
@@ -6326,40 +6310,41 @@
 			"peer": true
 		},
 		"node_modules/next": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/next/-/next-14.2.15.tgz",
-			"integrity": "sha512-h9ctmOokpoDphRvMGnwOJAedT6zKhwqyZML9mDtspgf4Rh3Pn7UTYKqePNoDvhsWBAO5GoPNYshnAUGIazVGmw==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/next/-/next-15.0.0.tgz",
+			"integrity": "sha512-/ivqF6gCShXpKwY9hfrIQYh8YMge8L3W+w1oRLv/POmK4MOQnh+FscZ8a0fRFTSQWE+2z9ctNYvELD9vP2FV+A==",
 			"dependencies": {
-				"@next/env": "14.2.15",
-				"@swc/helpers": "0.5.5",
+				"@next/env": "15.0.0",
+				"@swc/counter": "0.1.3",
+				"@swc/helpers": "0.5.13",
 				"busboy": "1.6.0",
 				"caniuse-lite": "^1.0.30001579",
-				"graceful-fs": "^4.2.11",
 				"postcss": "8.4.31",
-				"styled-jsx": "5.1.1"
+				"styled-jsx": "5.1.6"
 			},
 			"bin": {
 				"next": "dist/bin/next"
 			},
 			"engines": {
-				"node": ">=18.17.0"
+				"node": ">=18.18.0"
 			},
 			"optionalDependencies": {
-				"@next/swc-darwin-arm64": "14.2.15",
-				"@next/swc-darwin-x64": "14.2.15",
-				"@next/swc-linux-arm64-gnu": "14.2.15",
-				"@next/swc-linux-arm64-musl": "14.2.15",
-				"@next/swc-linux-x64-gnu": "14.2.15",
-				"@next/swc-linux-x64-musl": "14.2.15",
-				"@next/swc-win32-arm64-msvc": "14.2.15",
-				"@next/swc-win32-ia32-msvc": "14.2.15",
-				"@next/swc-win32-x64-msvc": "14.2.15"
+				"@next/swc-darwin-arm64": "15.0.0",
+				"@next/swc-darwin-x64": "15.0.0",
+				"@next/swc-linux-arm64-gnu": "15.0.0",
+				"@next/swc-linux-arm64-musl": "15.0.0",
+				"@next/swc-linux-x64-gnu": "15.0.0",
+				"@next/swc-linux-x64-musl": "15.0.0",
+				"@next/swc-win32-arm64-msvc": "15.0.0",
+				"@next/swc-win32-x64-msvc": "15.0.0",
+				"sharp": "^0.33.5"
 			},
 			"peerDependencies": {
 				"@opentelemetry/api": "^1.1.0",
 				"@playwright/test": "^1.41.2",
-				"react": "^18.2.0",
-				"react-dom": "^18.2.0",
+				"babel-plugin-react-compiler": "*",
+				"react": "^18.2.0 || 19.0.0-rc-65a56d0e-20241020",
+				"react-dom": "^18.2.0 || 19.0.0-rc-65a56d0e-20241020",
 				"sass": "^1.3.0"
 			},
 			"peerDependenciesMeta": {
@@ -6369,6 +6354,9 @@
 				"@playwright/test": {
 					"optional": true
 				},
+				"babel-plugin-react-compiler": {
+					"optional": true
+				},
 				"sass": {
 					"optional": true
 				}
@@ -8121,9 +8109,9 @@
 			}
 		},
 		"node_modules/styled-jsx": {
-			"version": "5.1.1",
-			"resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
-			"integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
+			"version": "5.1.6",
+			"resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
+			"integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==",
 			"dependencies": {
 				"client-only": "0.0.1"
 			},
@@ -8131,7 +8119,7 @@
 				"node": ">= 12.0.0"
 			},
 			"peerDependencies": {
-				"react": ">= 16.8.0 || 17.x.x || ^18.0.0-0"
+				"react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0"
 			},
 			"peerDependenciesMeta": {
 				"@babel/core": {
@@ -9586,9 +9574,9 @@
 			"requires": {}
 		},
 		"@next/env": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/env/-/env-14.2.15.tgz",
-			"integrity": "sha512-S1qaj25Wru2dUpcIZMjxeMVSwkt8BK4dmWHHiBuRstcIyOsMapqT4A4jSB6onvqeygkSSmOkyny9VVx8JIGamQ=="
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/env/-/env-15.0.0.tgz",
+			"integrity": "sha512-Mcv8ZVmEgTO3bePiH/eJ7zHqQEs2gCqZ0UId2RxHmDDc7Pw6ngfSrOFlxG8XDpaex+n2G+TKPsQAf28MO+88Gw=="
 		},
 		"@next/eslint-plugin-next": {
 			"version": "15.0.0",
@@ -9615,57 +9603,51 @@
 			}
 		},
 		"@next/swc-darwin-arm64": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-14.2.15.tgz",
-			"integrity": "sha512-Rvh7KU9hOUBnZ9TJ28n2Oa7dD9cvDBKua9IKx7cfQQ0GoYUwg9ig31O2oMwH3wm+pE3IkAQ67ZobPfEgurPZIA==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-darwin-arm64/-/swc-darwin-arm64-15.0.0.tgz",
+			"integrity": "sha512-Gjgs3N7cFa40a9QT9AEHnuGKq69/bvIOn0SLGDV+ordq07QOP4k1GDOVedMHEjVeqy1HBLkL8rXnNTuMZIv79A==",
 			"optional": true
 		},
 		"@next/swc-darwin-x64": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-14.2.15.tgz",
-			"integrity": "sha512-5TGyjFcf8ampZP3e+FyCax5zFVHi+Oe7sZyaKOngsqyaNEpOgkKB3sqmymkZfowy3ufGA/tUgDPPxpQx931lHg==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-15.0.0.tgz",
+			"integrity": "sha512-BUtTvY5u9s5berAuOEydAUlVMjnl6ZjXS+xVrMt317mglYZ2XXjY8YRDCaz9vYMjBNPXH8Gh75Cew5CMdVbWTw==",
 			"optional": true
 		},
 		"@next/swc-linux-arm64-gnu": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-14.2.15.tgz",
-			"integrity": "sha512-3Bwv4oc08ONiQ3FiOLKT72Q+ndEMyLNsc/D3qnLMbtUYTQAmkx9E/JRu0DBpHxNddBmNT5hxz1mYBphJ3mfrrw==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-15.0.0.tgz",
+			"integrity": "sha512-sbCoEpuWUBpYoLSgYrk0CkBv8RFv4ZlPxbwqRHr/BWDBJppTBtF53EvsntlfzQJ9fosYX12xnS6ltxYYwsMBjg==",
 			"optional": true
 		},
 		"@next/swc-linux-arm64-musl": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-14.2.15.tgz",
-			"integrity": "sha512-k5xf/tg1FBv/M4CMd8S+JL3uV9BnnRmoe7F+GWC3DxkTCD9aewFRH1s5rJ1zkzDa+Do4zyN8qD0N8c84Hu96FQ==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-15.0.0.tgz",
+			"integrity": "sha512-JAw84qfL81aQCirXKP4VkgmhiDpXJupGjt8ITUkHrOVlBd+3h5kjfPva5M0tH2F9KKSgJQHEo3F5S5tDH9h2ww==",
 			"optional": true
 		},
 		"@next/swc-linux-x64-gnu": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-14.2.15.tgz",
-			"integrity": "sha512-kE6q38hbrRbKEkkVn62reLXhThLRh6/TvgSP56GkFNhU22TbIrQDEMrO7j0IcQHcew2wfykq8lZyHFabz0oBrA==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-15.0.0.tgz",
+			"integrity": "sha512-r5Smd03PfxrGKMewdRf2RVNA1CU5l2rRlvZLQYZSv7FUsXD5bKEcOZ/6/98aqRwL7diXOwD8TCWJk1NbhATQHg==",
 			"optional": true
 		},
 		"@next/swc-linux-x64-musl": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-14.2.15.tgz",
-			"integrity": "sha512-PZ5YE9ouy/IdO7QVJeIcyLn/Rc4ml9M2G4y3kCM9MNf1YKvFY4heg3pVa/jQbMro+tP6yc4G2o9LjAz1zxD7tQ==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-15.0.0.tgz",
+			"integrity": "sha512-fM6qocafz4Xjhh79CuoQNeGPhDHGBBUbdVtgNFJOUM8Ih5ZpaDZlTvqvqsh5IoO06CGomxurEGqGz/4eR/FaMQ==",
 			"optional": true
 		},
 		"@next/swc-win32-arm64-msvc": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-14.2.15.tgz",
-			"integrity": "sha512-2raR16703kBvYEQD9HNLyb0/394yfqzmIeyp2nDzcPV4yPjqNUG3ohX6jX00WryXz6s1FXpVhsCo3i+g4RUX+g==",
-			"optional": true
-		},
-		"@next/swc-win32-ia32-msvc": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-14.2.15.tgz",
-			"integrity": "sha512-fyTE8cklgkyR1p03kJa5zXEaZ9El+kDNM5A+66+8evQS5e/6v0Gk28LqA0Jet8gKSOyP+OTm/tJHzMlGdQerdQ==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-15.0.0.tgz",
+			"integrity": "sha512-ZOd7c/Lz1lv7qP/KzR513XEa7QzW5/P0AH3A5eR1+Z/KmDOvMucht0AozccPc0TqhdV1xaXmC0Fdx0hoNzk6ng==",
 			"optional": true
 		},
 		"@next/swc-win32-x64-msvc": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-14.2.15.tgz",
-			"integrity": "sha512-SzqGbsLsP9OwKNUG9nekShTwhj6JSB9ZLMWQ8g1gG6hdE5gQLncbnbymrwy2yVmH9nikSLYRYxYMFu78Ggp7/g==",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-15.0.0.tgz",
+			"integrity": "sha512-2RVWcLtsqg4LtaoJ3j7RoKpnWHgcrz5XvuUGE7vBYU2i6M2XeD9Y8RlLaF770LEIScrrl8MdWsp6odtC6sZccg==",
 			"optional": true
 		},
 		"@nodelib/fs.scandir": {
@@ -10556,11 +10538,10 @@
 			"integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ=="
 		},
 		"@swc/helpers": {
-			"version": "0.5.5",
-			"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.5.tgz",
-			"integrity": "sha512-KGYxvIOXcceOAbEk4bi/dVLEK9z8sZ0uBB3Il5b1rhfClSpcX0yfRO0KmTkqR2cnQDymwLB+25ZyMzICg/cm/A==",
+			"version": "0.5.13",
+			"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.13.tgz",
+			"integrity": "sha512-UoKGxQ3r5kYI9dALKJapMmuK+1zWM/H17Z1+iwnNmzcJRnfFuevZs375TA5rW31pu4BS4NoSy1fRsexDXfWn5w==",
 			"requires": {
-				"@swc/counter": "^0.1.3",
 				"tslib": "^2.4.0"
 			}
 		},
@@ -13257,26 +13238,26 @@
 			"peer": true
 		},
 		"next": {
-			"version": "14.2.15",
-			"resolved": "https://registry.npmjs.org/next/-/next-14.2.15.tgz",
-			"integrity": "sha512-h9ctmOokpoDphRvMGnwOJAedT6zKhwqyZML9mDtspgf4Rh3Pn7UTYKqePNoDvhsWBAO5GoPNYshnAUGIazVGmw==",
-			"requires": {
-				"@next/env": "14.2.15",
-				"@next/swc-darwin-arm64": "14.2.15",
-				"@next/swc-darwin-x64": "14.2.15",
-				"@next/swc-linux-arm64-gnu": "14.2.15",
-				"@next/swc-linux-arm64-musl": "14.2.15",
-				"@next/swc-linux-x64-gnu": "14.2.15",
-				"@next/swc-linux-x64-musl": "14.2.15",
-				"@next/swc-win32-arm64-msvc": "14.2.15",
-				"@next/swc-win32-ia32-msvc": "14.2.15",
-				"@next/swc-win32-x64-msvc": "14.2.15",
-				"@swc/helpers": "0.5.5",
+			"version": "15.0.0",
+			"resolved": "https://registry.npmjs.org/next/-/next-15.0.0.tgz",
+			"integrity": "sha512-/ivqF6gCShXpKwY9hfrIQYh8YMge8L3W+w1oRLv/POmK4MOQnh+FscZ8a0fRFTSQWE+2z9ctNYvELD9vP2FV+A==",
+			"requires": {
+				"@next/env": "15.0.0",
+				"@next/swc-darwin-arm64": "15.0.0",
+				"@next/swc-darwin-x64": "15.0.0",
+				"@next/swc-linux-arm64-gnu": "15.0.0",
+				"@next/swc-linux-arm64-musl": "15.0.0",
+				"@next/swc-linux-x64-gnu": "15.0.0",
+				"@next/swc-linux-x64-musl": "15.0.0",
+				"@next/swc-win32-arm64-msvc": "15.0.0",
+				"@next/swc-win32-x64-msvc": "15.0.0",
+				"@swc/counter": "0.1.3",
+				"@swc/helpers": "0.5.13",
 				"busboy": "1.6.0",
 				"caniuse-lite": "^1.0.30001579",
-				"graceful-fs": "^4.2.11",
 				"postcss": "8.4.31",
-				"styled-jsx": "5.1.1"
+				"sharp": "^0.33.5",
+				"styled-jsx": "5.1.6"
 			},
 			"dependencies": {
 				"postcss": {
@@ -14384,9 +14365,9 @@
 			"dev": true
 		},
 		"styled-jsx": {
-			"version": "5.1.1",
-			"resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.1.tgz",
-			"integrity": "sha512-pW7uC1l4mBZ8ugbiZrcIsiIvVx1UmTfw7UkC3Um2tmfUq9Bhk8IiyEIPl6F8agHgjzku6j0xQEZbfA5uSgSaCw==",
+			"version": "5.1.6",
+			"resolved": "https://registry.npmjs.org/styled-jsx/-/styled-jsx-5.1.6.tgz",
+			"integrity": "sha512-qSVyDTeMotdvQYoHWLNGwRFJHC+i+ZvdBRYosOFgC+Wg1vx4frN2/RG/NA7SYqqvKNLf39P2LSRA2pu6n0XYZA==",
 			"requires": {
 				"client-only": "0.0.1"
 			}
diff --git a/app/package.json b/app/package.json
index 222968c8..a43fb7e7 100644
--- a/app/package.json
+++ b/app/package.json
@@ -23,7 +23,7 @@
 		"@trpc/server": "^10.43.3",
 		"@vercel/analytics": "^1.3.1",
 		"bcryptjs": "^2.4.3",
-		"next": "^14.2.15",
+		"next": "^15.0.0",
 		"next-auth": "4.24.8",
 		"next-share": "^0.27.0",
 		"nodemailer": "^6.9.15",