diff --git a/apps/web/.gitignore b/apps/web/.gitignore
index 4059ef79..e1753567 100644
--- a/apps/web/.gitignore
+++ b/apps/web/.gitignore
@@ -40,3 +40,6 @@ next-env.d.ts
# Sentry
next.config.original.js
+
+# Sentry Config File
+.sentryclirc
diff --git a/apps/web/app/global-error.tsx b/apps/web/app/global-error.tsx
new file mode 100644
index 00000000..49bbd2bc
--- /dev/null
+++ b/apps/web/app/global-error.tsx
@@ -0,0 +1,24 @@
+"use client";
+
+import * as Sentry from "@sentry/nextjs";
+import NextError from "next/error";
+import { useEffect } from "react";
+
+export default function GlobalError({
+ error,
+}: {
+ error: Error & { digest?: string };
+}) {
+ useEffect(() => {
+ Sentry.captureException(error);
+ }, [error]);
+
+ return (
+
+
+ {/* This is the default Next.js error component but it doesn't allow omitting the statusCode property yet. */}
+
+
+
+ );
+}
\ No newline at end of file
diff --git a/apps/web/next.config.js b/apps/web/next.config.js
index efc12988..14746b67 100644
--- a/apps/web/next.config.js
+++ b/apps/web/next.config.js
@@ -3,4 +3,23 @@ const nextConfig = {
reactStrictMode: false,
}
-module.exports = nextConfig
+const { withSentryConfig } = require("@sentry/nextjs");
+
+const SentryWebpackPluginOptions = {
+ // For all available options, see:
+ // https://docs.sentry.io/platforms/javascript/guides/nextjs/manual-setup/
+
+ // Upload a larger set of source maps for prettier stack traces (increases build time)
+ widenClientFileUpload: true,
+
+ // Transpiles SDK to be compatible with IE11 (increases bundle size)
+ transpileClientSDK: true,
+
+ // Routes browser requests to Sentry through a Next.js rewrite to circumvent ad-blockers (increases server load)
+ tunnelRoute: "/monitoring",
+
+ // Hides source maps from generated client bundles
+ hideSourceMaps: true,
+}
+
+module.exports = withSentryConfig(nextConfig, SentryWebpackPluginOptions);
\ No newline at end of file
diff --git a/apps/web/package-lock.json b/apps/web/package-lock.json
index c4c99efa..e6daccda 100644
--- a/apps/web/package-lock.json
+++ b/apps/web/package-lock.json
@@ -15,7 +15,7 @@
"@radix-ui/react-icons": "^1.1.1",
"@radix-ui/react-switch": "^1.0.3",
"@radix-ui/react-tooltip": "^1.0.5",
- "@sentry/nextjs": "^7.77.0",
+ "@sentry/nextjs": "^7.92.0",
"@stitches/react": "^1.2.8",
"@tiptap/extension-code-block-lowlight": "^2.1.11",
"@tiptap/extension-collaboration": "^2.0.0-beta.199",
@@ -3300,38 +3300,52 @@
"integrity": "sha512-6i/8UoL0P5y4leBIGzvkZdS85RDMG9y1ihZzmTZQ5LdHUYmZ7pKFoj8X0236s3lusPs1Fa5HTQUpwI+UfTcmeA==",
"dev": true
},
- "node_modules/@sentry-internal/tracing": {
- "version": "7.77.0",
- "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.77.0.tgz",
- "integrity": "sha512-8HRF1rdqWwtINqGEdx8Iqs9UOP/n8E0vXUu3Nmbqj4p5sQPA7vvCfq+4Y4rTqZFc7sNdFpDsRION5iQEh8zfZw==",
+ "node_modules/@sentry-internal/feedback": {
+ "version": "7.92.0",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/feedback/-/feedback-7.92.0.tgz",
+ "integrity": "sha512-/jEALRtVqboxB9kcK2tag8QCO6XANTlGBb9RV3oeGXJe0DDNJXRq6wVZbfgztXJRrfgx4XVDcNt1pRVoGGG++g==",
"dependencies": {
- "@sentry/core": "7.77.0",
- "@sentry/types": "7.77.0",
- "@sentry/utils": "7.77.0"
+ "@sentry/core": "7.92.0",
+ "@sentry/types": "7.92.0",
+ "@sentry/utils": "7.92.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@sentry-internal/tracing": {
+ "version": "7.92.0",
+ "resolved": "https://registry.npmjs.org/@sentry-internal/tracing/-/tracing-7.92.0.tgz",
+ "integrity": "sha512-ur55vPcUUUWFUX4eVLNP71ohswK7ZZpleNZw9Y1GfLqyI+0ILQUwjtzqItJrdClvVsdRZJMRmDV40Hp9Lbb9mA==",
+ "dependencies": {
+ "@sentry/core": "7.92.0",
+ "@sentry/types": "7.92.0",
+ "@sentry/utils": "7.92.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/browser": {
- "version": "7.77.0",
- "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.77.0.tgz",
- "integrity": "sha512-nJ2KDZD90H8jcPx9BysQLiQW+w7k7kISCWeRjrEMJzjtge32dmHA8G4stlUTRIQugy5F+73cOayWShceFP7QJQ==",
+ "version": "7.92.0",
+ "resolved": "https://registry.npmjs.org/@sentry/browser/-/browser-7.92.0.tgz",
+ "integrity": "sha512-loMr02/zQ38u8aQhYLtIBg0i5n3ps2e3GUXrt3CdsJQdkRYfa62gcrE7SzvoEpMVHTk7VOI4fWGht8cWw/1k3A==",
"dependencies": {
- "@sentry-internal/tracing": "7.77.0",
- "@sentry/core": "7.77.0",
- "@sentry/replay": "7.77.0",
- "@sentry/types": "7.77.0",
- "@sentry/utils": "7.77.0"
+ "@sentry-internal/feedback": "7.92.0",
+ "@sentry-internal/tracing": "7.92.0",
+ "@sentry/core": "7.92.0",
+ "@sentry/replay": "7.92.0",
+ "@sentry/types": "7.92.0",
+ "@sentry/utils": "7.92.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/cli": {
- "version": "1.75.2",
- "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-1.75.2.tgz",
- "integrity": "sha512-CG0CKH4VCKWzEaegouWfCLQt9SFN+AieFESCatJ7zSuJmzF05ywpMusjxqRul6lMwfUhRKjGKOzcRJ1jLsfTBw==",
+ "version": "1.77.1",
+ "resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-1.77.1.tgz",
+ "integrity": "sha512-OtJ7U9LeuPUAY/xow9wwcjM9w42IJIpDtClTKI/RliE685vd/OJUIpiAvebHNthDYpQynvwb/0iuF4fonh+CKw==",
"hasInstallScript": true,
"dependencies": {
"https-proxy-agent": "^5.0.0",
@@ -3349,25 +3363,25 @@
}
},
"node_modules/@sentry/core": {
- "version": "7.77.0",
- "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.77.0.tgz",
- "integrity": "sha512-Tj8oTYFZ/ZD+xW8IGIsU6gcFXD/gfE+FUxUaeSosd9KHwBQNOLhZSsYo/tTVf/rnQI/dQnsd4onPZLiL+27aTg==",
+ "version": "7.92.0",
+ "resolved": "https://registry.npmjs.org/@sentry/core/-/core-7.92.0.tgz",
+ "integrity": "sha512-1Tly7YB2I1byI5xb0Cwrxs56Rhww+6mQ7m9P7rTmdC3/ijOzbEoohtYIUPwcooCEarpbEJe/tAayRx6BrH2UbQ==",
"dependencies": {
- "@sentry/types": "7.77.0",
- "@sentry/utils": "7.77.0"
+ "@sentry/types": "7.92.0",
+ "@sentry/utils": "7.92.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/integrations": {
- "version": "7.77.0",
- "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.77.0.tgz",
- "integrity": "sha512-P055qXgBHeZNKnnVEs5eZYLdy6P49Zr77A1aWJuNih/EenzMy922GOeGy2mF6XYrn1YJSjEwsNMNsQkcvMTK8Q==",
+ "version": "7.92.0",
+ "resolved": "https://registry.npmjs.org/@sentry/integrations/-/integrations-7.92.0.tgz",
+ "integrity": "sha512-9OT4i9b0Ge5sP3rCV8yYqoPp3BKcB9wjddW7sG0w88va32F0UWMKk4gmprtwgPYM0+u5AS/TTAVichRVRj+I1Q==",
"dependencies": {
- "@sentry/core": "7.77.0",
- "@sentry/types": "7.77.0",
- "@sentry/utils": "7.77.0",
+ "@sentry/core": "7.92.0",
+ "@sentry/types": "7.92.0",
+ "@sentry/utils": "7.92.0",
"localforage": "^1.8.1"
},
"engines": {
@@ -3375,19 +3389,19 @@
}
},
"node_modules/@sentry/nextjs": {
- "version": "7.77.0",
- "resolved": "https://registry.npmjs.org/@sentry/nextjs/-/nextjs-7.77.0.tgz",
- "integrity": "sha512-8tYPBt5luFjrng1sAMJqNjM9sq80q0jbt6yariADU9hEr7Zk8YqFaOI2/Q6yn9dZ6XyytIRtLEo54kk2AO94xw==",
+ "version": "7.92.0",
+ "resolved": "https://registry.npmjs.org/@sentry/nextjs/-/nextjs-7.92.0.tgz",
+ "integrity": "sha512-gHLB06EwLWIxI4VdNADw3RaSokc+YKKLrG/RH8PrfWczCa2v5uQgzxWwKNYuViSGH/MBxZhpKGIZimjIkpOlBw==",
"dependencies": {
"@rollup/plugin-commonjs": "24.0.0",
- "@sentry/core": "7.77.0",
- "@sentry/integrations": "7.77.0",
- "@sentry/node": "7.77.0",
- "@sentry/react": "7.77.0",
- "@sentry/types": "7.77.0",
- "@sentry/utils": "7.77.0",
- "@sentry/vercel-edge": "7.77.0",
- "@sentry/webpack-plugin": "1.20.0",
+ "@sentry/core": "7.92.0",
+ "@sentry/integrations": "7.92.0",
+ "@sentry/node": "7.92.0",
+ "@sentry/react": "7.92.0",
+ "@sentry/types": "7.92.0",
+ "@sentry/utils": "7.92.0",
+ "@sentry/vercel-edge": "7.92.0",
+ "@sentry/webpack-plugin": "1.21.0",
"chalk": "3.0.0",
"resolve": "1.22.8",
"rollup": "2.78.0",
@@ -3408,14 +3422,14 @@
}
},
"node_modules/@sentry/node": {
- "version": "7.77.0",
- "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.77.0.tgz",
- "integrity": "sha512-Ob5tgaJOj0OYMwnocc6G/CDLWC7hXfVvKX/ofkF98+BbN/tQa5poL+OwgFn9BA8ud8xKzyGPxGU6LdZ8Oh3z/g==",
+ "version": "7.92.0",
+ "resolved": "https://registry.npmjs.org/@sentry/node/-/node-7.92.0.tgz",
+ "integrity": "sha512-LZeQL1r6kikEoOzA9K61OmMl32/lK/6PzmFNDH6z7UYwQopCZgVA6IP+CZuln8K2ys5c9hCyF7ICQMysXfpNJA==",
"dependencies": {
- "@sentry-internal/tracing": "7.77.0",
- "@sentry/core": "7.77.0",
- "@sentry/types": "7.77.0",
- "@sentry/utils": "7.77.0",
+ "@sentry-internal/tracing": "7.92.0",
+ "@sentry/core": "7.92.0",
+ "@sentry/types": "7.92.0",
+ "@sentry/utils": "7.92.0",
"https-proxy-agent": "^5.0.0"
},
"engines": {
@@ -3423,13 +3437,13 @@
}
},
"node_modules/@sentry/react": {
- "version": "7.77.0",
- "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.77.0.tgz",
- "integrity": "sha512-Q+htKzib5em0MdaQZMmPomaswaU3xhcVqmLi2CxqQypSjbYgBPPd+DuhrXKoWYLDDkkbY2uyfe4Lp3yLRWeXYw==",
+ "version": "7.92.0",
+ "resolved": "https://registry.npmjs.org/@sentry/react/-/react-7.92.0.tgz",
+ "integrity": "sha512-lTvrLuvxtGEZbkW6NHru03K6eyixKyBliwiLwO+k37FK7Ha8Bwat2m77weyizWCdQ6DKlVazJNppkNeAlACIvQ==",
"dependencies": {
- "@sentry/browser": "7.77.0",
- "@sentry/types": "7.77.0",
- "@sentry/utils": "7.77.0",
+ "@sentry/browser": "7.92.0",
+ "@sentry/types": "7.92.0",
+ "@sentry/utils": "7.92.0",
"hoist-non-react-statics": "^3.3.2"
},
"engines": {
@@ -3440,57 +3454,58 @@
}
},
"node_modules/@sentry/replay": {
- "version": "7.77.0",
- "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.77.0.tgz",
- "integrity": "sha512-M9Ik2J5ekl+C1Och3wzLRZVaRGK33BlnBwfwf3qKjgLDwfKW+1YkwDfTHbc2b74RowkJbOVNcp4m8ptlehlSaQ==",
+ "version": "7.92.0",
+ "resolved": "https://registry.npmjs.org/@sentry/replay/-/replay-7.92.0.tgz",
+ "integrity": "sha512-G1t9Uvc9cR8VpNkElwvHIMGzykjIKikb10n0tfVd3e+rBPMCCjCPWOduwG6jZYxcvCjTpqmJh6NSLXxL/Mt4JA==",
"dependencies": {
- "@sentry-internal/tracing": "7.77.0",
- "@sentry/core": "7.77.0",
- "@sentry/types": "7.77.0",
- "@sentry/utils": "7.77.0"
+ "@sentry-internal/tracing": "7.92.0",
+ "@sentry/core": "7.92.0",
+ "@sentry/types": "7.92.0",
+ "@sentry/utils": "7.92.0"
},
"engines": {
"node": ">=12"
}
},
"node_modules/@sentry/types": {
- "version": "7.77.0",
- "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.77.0.tgz",
- "integrity": "sha512-nfb00XRJVi0QpDHg+JkqrmEBHsqBnxJu191Ded+Cs1OJ5oPXEW6F59LVcBScGvMqe+WEk1a73eH8XezwfgrTsA==",
+ "version": "7.92.0",
+ "resolved": "https://registry.npmjs.org/@sentry/types/-/types-7.92.0.tgz",
+ "integrity": "sha512-APmSOuZuoRGpbPpPeYIbMSplPjiWNLZRQa73QiXuTflW4Tu/ItDlU8hOa2+A6JKVkJCuD2EN6yUrxDGSMyNXeg==",
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/utils": {
- "version": "7.77.0",
- "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.77.0.tgz",
- "integrity": "sha512-NmM2kDOqVchrey3N5WSzdQoCsyDkQkiRxExPaNI2oKQ/jMWHs9yt0tSy7otPBcXs0AP59ihl75Bvm1tDRcsp5g==",
+ "version": "7.92.0",
+ "resolved": "https://registry.npmjs.org/@sentry/utils/-/utils-7.92.0.tgz",
+ "integrity": "sha512-3nEfrQ1z28b/2zgFGANPh5yMVtgwXmrasZxTvKbrAj+KWJpjrJHrIR84r9W277J44NMeZ5RhRW2uoDmuBslPnA==",
"dependencies": {
- "@sentry/types": "7.77.0"
+ "@sentry/types": "7.92.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/vercel-edge": {
- "version": "7.77.0",
- "resolved": "https://registry.npmjs.org/@sentry/vercel-edge/-/vercel-edge-7.77.0.tgz",
- "integrity": "sha512-ffddPCgxVeAccPYuH5sooZeHBqDuJ9OIhIRYKoDi4TvmwAzWo58zzZWhRpkHqHgIQdQvhLVZ5F+FSQVWnYSOkw==",
+ "version": "7.92.0",
+ "resolved": "https://registry.npmjs.org/@sentry/vercel-edge/-/vercel-edge-7.92.0.tgz",
+ "integrity": "sha512-iUmYjFj5ze/k9B06HmLZ/2JGhaf/tmjd0foz3pSbMyKbql6TTnybIwG+gcg+ukcek5mB82288Fh+mWXoUUkMIg==",
"dependencies": {
- "@sentry/core": "7.77.0",
- "@sentry/types": "7.77.0",
- "@sentry/utils": "7.77.0"
+ "@sentry-internal/tracing": "7.92.0",
+ "@sentry/core": "7.92.0",
+ "@sentry/types": "7.92.0",
+ "@sentry/utils": "7.92.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@sentry/webpack-plugin": {
- "version": "1.20.0",
- "resolved": "https://registry.npmjs.org/@sentry/webpack-plugin/-/webpack-plugin-1.20.0.tgz",
- "integrity": "sha512-Ssj1mJVFsfU6vMCOM2d+h+KQR7QHSfeIP16t4l20Uq/neqWXZUQ2yvQfe4S3BjdbJXz/X4Rw8Hfy1Sd0ocunYw==",
+ "version": "1.21.0",
+ "resolved": "https://registry.npmjs.org/@sentry/webpack-plugin/-/webpack-plugin-1.21.0.tgz",
+ "integrity": "sha512-x0PYIMWcsTauqxgl7vWUY6sANl+XGKtx7DCVnnY7aOIIlIna0jChTAPANTfA2QrK+VK+4I/4JxatCEZBnXh3Og==",
"dependencies": {
- "@sentry/cli": "^1.74.6",
+ "@sentry/cli": "^1.77.1",
"webpack-sources": "^2.0.0 || ^3.0.0"
},
"engines": {
diff --git a/apps/web/package.json b/apps/web/package.json
index 85cd25ff..27561c3e 100644
--- a/apps/web/package.json
+++ b/apps/web/package.json
@@ -16,7 +16,7 @@
"@radix-ui/react-icons": "^1.1.1",
"@radix-ui/react-switch": "^1.0.3",
"@radix-ui/react-tooltip": "^1.0.5",
- "@sentry/nextjs": "^7.77.0",
+ "@sentry/nextjs": "^7.92.0",
"@stitches/react": "^1.2.8",
"@tiptap/extension-code-block-lowlight": "^2.1.11",
"@tiptap/extension-collaboration": "^2.0.0-beta.199",
diff --git a/apps/web/sentry.client.config.js b/apps/web/sentry.client.config.js
deleted file mode 100644
index c34fa903..00000000
--- a/apps/web/sentry.client.config.js
+++ /dev/null
@@ -1,24 +0,0 @@
-// This file configures the initialization of Sentry on the browser.
-// The config you add here will be used whenever a page is visited.
-// https://docs.sentry.io/platforms/javascript/guides/nextjs/
-
-import * as Sentry from "@sentry/nextjs";
-
-const SENTRY_DSN = process.env.SENTRY_DSN || process.env.NEXT_PUBLIC_SENTRY_DSN;
-
-Sentry.init({
- dsn: SENTRY_DSN || "https://5a456d54654c494b9a416c19e3b94573@o4505007882436608.ingest.sentry.io/4505008095625216",
- // Adjust this value in production, or use tracesSampler for greater control
- tracesSampleRate: 1.0,
- // ...
- // Note: if you want to override the automatic release value, do not set a
- // `release` value here - use the environment variable `SENTRY_RELEASE`, so
- // that it will also get attached to your source maps
-
- replaysSessionSampleRate: 0.1,
- // If the entire session is not sampled, use the below sample rate to sample
- // sessions when an error occurs.
- replaysOnErrorSampleRate: 1.0,
-
- integrations: [new Sentry.Replay()],
-});
diff --git a/apps/web/sentry.client.config.ts b/apps/web/sentry.client.config.ts
new file mode 100644
index 00000000..df526510
--- /dev/null
+++ b/apps/web/sentry.client.config.ts
@@ -0,0 +1,30 @@
+// This file configures the initialization of Sentry on the client.
+// The config you add here will be used whenever a users loads a page in their browser.
+// https://docs.sentry.io/platforms/javascript/guides/nextjs/
+
+import * as Sentry from "@sentry/nextjs";
+
+Sentry.init({
+ dsn: "https://5a456d54654c494b9a416c19e3b94573@o4505007882436608.ingest.sentry.io/4505008095625216",
+
+ // Adjust this value in production, or use tracesSampler for greater control
+ tracesSampleRate: 1,
+
+ // Setting this option to true will print useful information to the console while you're setting up Sentry.
+ debug: false,
+
+ replaysOnErrorSampleRate: 1.0,
+
+ // This sets the sample rate to be 10%. You may want this to be 100% while
+ // in development and sample at a lower rate in production
+ replaysSessionSampleRate: 0.1,
+
+ // You can remove this option if you're not planning to use the Sentry Session Replay feature:
+ integrations: [
+ new Sentry.Replay({
+ // Additional Replay configuration goes in here, for example:
+ maskAllText: true,
+ blockAllMedia: true,
+ }),
+ ],
+});
diff --git a/apps/web/sentry.edge.config.js b/apps/web/sentry.edge.config.js
deleted file mode 100644
index 77601664..00000000
--- a/apps/web/sentry.edge.config.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file configures the initialization of Sentry on the server.
-// The config you add here will be used whenever middleware or an Edge route handles a request.
-// https://docs.sentry.io/platforms/javascript/guides/nextjs/
-
-import * as Sentry from '@sentry/nextjs';
-
-const SENTRY_DSN = process.env.SENTRY_DSN || process.env.NEXT_PUBLIC_SENTRY_DSN;
-
-Sentry.init({
- dsn: SENTRY_DSN || 'https://5a456d54654c494b9a416c19e3b94573@o4505007882436608.ingest.sentry.io/4505008095625216',
- // Adjust this value in production, or use tracesSampler for greater control
- tracesSampleRate: 1.0,
- // ...
- // Note: if you want to override the automatic release value, do not set a
- // `release` value here - use the environment variable `SENTRY_RELEASE`, so
- // that it will also get attached to your source maps
-});
diff --git a/apps/web/sentry.edge.config.ts b/apps/web/sentry.edge.config.ts
new file mode 100644
index 00000000..00fc639b
--- /dev/null
+++ b/apps/web/sentry.edge.config.ts
@@ -0,0 +1,16 @@
+// This file configures the initialization of Sentry for edge features (middleware, edge routes, and so on).
+// The config you add here will be used whenever one of the edge features is loaded.
+// Note that this config is unrelated to the Vercel Edge Runtime and is also required when running locally.
+// https://docs.sentry.io/platforms/javascript/guides/nextjs/
+
+import * as Sentry from "@sentry/nextjs";
+
+Sentry.init({
+ dsn: "https://5a456d54654c494b9a416c19e3b94573@o4505007882436608.ingest.sentry.io/4505008095625216",
+
+ // Adjust this value in production, or use tracesSampler for greater control
+ tracesSampleRate: 1,
+
+ // Setting this option to true will print useful information to the console while you're setting up Sentry.
+ debug: false,
+});
diff --git a/apps/web/sentry.server.config.js b/apps/web/sentry.server.config.js
deleted file mode 100644
index e00b60ff..00000000
--- a/apps/web/sentry.server.config.js
+++ /dev/null
@@ -1,17 +0,0 @@
-// This file configures the initialization of Sentry on the server.
-// The config you add here will be used whenever the server handles a request.
-// https://docs.sentry.io/platforms/javascript/guides/nextjs/
-
-import * as Sentry from '@sentry/nextjs';
-
-const SENTRY_DSN = process.env.SENTRY_DSN || process.env.NEXT_PUBLIC_SENTRY_DSN;
-
-Sentry.init({
- dsn: SENTRY_DSN || 'https://5a456d54654c494b9a416c19e3b94573@o4505007882436608.ingest.sentry.io/4505008095625216',
- // Adjust this value in production, or use tracesSampler for greater control
- tracesSampleRate: 1.0,
- // ...
- // Note: if you want to override the automatic release value, do not set a
- // `release` value here - use the environment variable `SENTRY_RELEASE`, so
- // that it will also get attached to your source maps
-});
diff --git a/apps/web/sentry.server.config.ts b/apps/web/sentry.server.config.ts
new file mode 100644
index 00000000..ea085c48
--- /dev/null
+++ b/apps/web/sentry.server.config.ts
@@ -0,0 +1,15 @@
+// This file configures the initialization of Sentry on the server.
+// The config you add here will be used whenever the server handles a request.
+// https://docs.sentry.io/platforms/javascript/guides/nextjs/
+
+import * as Sentry from "@sentry/nextjs";
+
+Sentry.init({
+ dsn: "https://5a456d54654c494b9a416c19e3b94573@o4505007882436608.ingest.sentry.io/4505008095625216",
+
+ // Adjust this value in production, or use tracesSampler for greater control
+ tracesSampleRate: 1,
+
+ // Setting this option to true will print useful information to the console while you're setting up Sentry.
+ debug: false,
+});
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index ce5b2bc3..1b8fe216 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -42,7 +42,7 @@ importers:
specifier: ^1.0.5
version: 1.0.7(@types/react-dom@18.0.6)(@types/react@18.2.8)(react-dom@18.2.0)(react@18.2.0)
'@sentry/nextjs':
- specifier: ^7.77.0
+ specifier: ^7.88.0
version: 7.88.0(next@14.0.4)(react@18.2.0)
'@stitches/react':
specifier: ^1.2.8