diff --git a/ecosystem.config.cjs b/ecosystem.config.cjs index 7e8a838e..841c625f 100644 --- a/ecosystem.config.cjs +++ b/ecosystem.config.cjs @@ -2,8 +2,7 @@ module.exports = { apps: [ { name: "next", - script: "pnpm", - args: "start", + script: ".next/standalone/server.js", exec_mode: "cluster", instances: 0, max_memory_restart: "512M", diff --git a/next.config.ts b/next.config.ts index 47f5b0a7..61c17d9a 100644 --- a/next.config.ts +++ b/next.config.ts @@ -34,13 +34,15 @@ const nextConfig: NextConfig = { // Enable React Compiler for automatic memoization reactCompiler: true, - // Compress responses with gzip + // Compress responses with gzip/brotli compress: true, - // Disable Next.js telemetry + // Disable Next.js telemetry and browser sourcemaps in production productionBrowserSourceMaps: false, - // Enable TypeScript CLI integration for TypeScript 7 compatibility + // Standalone output for smaller, faster Docker deployments and cold starts + output: "standalone", + experimental: { useTypeScriptCli: true, }, @@ -99,4 +101,4 @@ export default withBA( }, telemetry: false, }), -); \ No newline at end of file +); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3eea03be..eec5393d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -43,7 +43,7 @@ importers: version: 7.9.1(prisma@7.9.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(magicast@0.5.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@7.0.2))(typescript@7.0.2) '@sentry/nextjs': specifier: ^10.69.0 - version: 10.69.0(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(next@16.2.12(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.62.0)(@types/node@26.1.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.24)) + version: 10.69.0(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(next@16.2.12(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.62.0)(@types/node@26.1.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.25)) '@tanstack/react-virtual': specifier: ^3.14.9 version: 3.14.9(react-dom@19.2.8(react@19.2.8))(react@19.2.8) @@ -187,8 +187,8 @@ importers: specifier: ^13.1.3 version: 13.1.3 postcss: - specifier: ^8.5.19 - version: 8.5.24 + specifier: ^8.5.25 + version: 8.5.25 prisma: specifier: ^7.9.1 version: 7.9.1(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(magicast@0.5.3)(react-dom@19.2.8(react@19.2.8))(react@19.2.8)(typescript@7.0.2) @@ -3905,8 +3905,8 @@ packages: resolution: {integrity: sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==} engines: {node: '>=4'} - postcss@8.5.24: - resolution: {integrity: sha512-8RyVklq0owXUTa4xlpzu4l9AaVKIdQvAcOHZWaMh98HgySsUtxRVf/chRe3dsSLqb6i40BzGRzEUddRaI+9TSw==} + postcss@8.5.25: + resolution: {integrity: sha512-DTPx3RWSSnWyzLxQnlH0rJP+EW5ekl16ZU4/psbIhA0e53kJfdgaN5vKM+xP7yJtXVu+nfdVFmlgFDEKAe4Pyw==} engines: {node: ^10 || ^12 || >=14} postgres@3.4.7: @@ -5988,7 +5988,7 @@ snapshots: - encoding - supports-color - '@sentry/bundler-plugins@10.68.0(rollup@4.62.3)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.24))': + '@sentry/bundler-plugins@10.68.0(rollup@4.62.3)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.25))': dependencies: '@babel/core': 7.29.7 '@sentry/cli': 2.58.6 @@ -5999,7 +5999,7 @@ snapshots: magic-string: 0.30.21 optionalDependencies: rollup: 4.62.3 - webpack: 5.109.1(esbuild@0.28.1)(postcss@8.5.24) + webpack: 5.109.1(esbuild@0.28.1)(postcss@8.5.25) transitivePeerDependencies: - encoding - supports-color @@ -6062,7 +6062,7 @@ snapshots: dependencies: '@sentry/core': 10.69.0 - '@sentry/nextjs@10.69.0(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(next@16.2.12(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.62.0)(@types/node@26.1.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.24))': + '@sentry/nextjs@10.69.0(@opentelemetry/core@2.10.0(@opentelemetry/api@1.9.1))(@opentelemetry/sdk-trace-base@2.10.0(@opentelemetry/api@1.9.1))(next@16.2.12(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.62.0)(@types/node@26.1.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8))(react@19.2.8)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.25))': dependencies: '@opentelemetry/api': 1.9.1 '@rollup/plugin-commonjs': 28.0.1(rollup@4.62.3) @@ -6075,7 +6075,7 @@ snapshots: '@sentry/react': 10.69.0(react@19.2.8) '@sentry/server-utils': 10.69.0 '@sentry/vercel-edge': 10.69.0 - '@sentry/webpack-plugin': 5.4.0(rollup@4.62.3)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.24)) + '@sentry/webpack-plugin': 5.4.0(rollup@4.62.3)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.25)) next: 16.2.12(@babel/core@7.29.7)(@opentelemetry/api@1.9.1)(@playwright/test@1.62.0)(@types/node@26.1.2)(babel-plugin-react-compiler@1.0.0)(react-dom@19.2.8(react@19.2.8))(react@19.2.8) rollup: 4.62.3 stacktrace-parser: 0.1.11 @@ -6156,10 +6156,10 @@ snapshots: '@opentelemetry/api': 1.9.1 '@sentry/core': 10.69.0 - '@sentry/webpack-plugin@5.4.0(rollup@4.62.3)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.24))': + '@sentry/webpack-plugin@5.4.0(rollup@4.62.3)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.25))': dependencies: - '@sentry/bundler-plugins': 10.68.0(rollup@4.62.3)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.24)) - webpack: 5.109.1(esbuild@0.28.1)(postcss@8.5.24) + '@sentry/bundler-plugins': 10.68.0(rollup@4.62.3)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.25)) + webpack: 5.109.1(esbuild@0.28.1)(postcss@8.5.25) transitivePeerDependencies: - encoding - rollup @@ -6306,7 +6306,7 @@ snapshots: '@alloc/quick-lru': 5.2.0 '@tailwindcss/node': 4.3.3 '@tailwindcss/oxide': 4.3.3 - postcss: 8.5.24 + postcss: 8.5.25 tailwindcss: 4.3.3 '@tailwindcss/typography@0.5.20(tailwindcss@4.3.3)': @@ -7504,16 +7504,16 @@ snapshots: minimist@1.2.8: {} - minimizer-webpack-plugin@5.6.1(esbuild@0.28.1)(postcss@8.5.24)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.24)): + minimizer-webpack-plugin@5.6.1(esbuild@0.28.1)(postcss@8.5.25)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.25)): dependencies: '@jridgewell/trace-mapping': 0.3.31 jest-worker: 27.5.1 schema-utils: 4.3.3 terser: 5.49.0 - webpack: 5.109.1(esbuild@0.28.1)(postcss@8.5.24) + webpack: 5.109.1(esbuild@0.28.1)(postcss@8.5.25) optionalDependencies: esbuild: 0.28.1 - postcss: 8.5.24 + postcss: 8.5.25 minipass@7.1.3: {} @@ -7617,7 +7617,7 @@ snapshots: '@swc/helpers': 0.5.15 baseline-browser-mapping: 2.11.6 caniuse-lite: 1.0.30001806 - postcss: 8.5.24 + postcss: 8.5.25 react: 19.2.8 react-dom: 19.2.8(react@19.2.8) styled-jsx: 5.1.6(@babel/core@7.29.7)(react@19.2.8) @@ -7811,7 +7811,7 @@ snapshots: cssesc: 3.0.0 util-deprecate: 1.0.2 - postcss@8.5.24: + postcss@8.5.25: dependencies: nanoid: 3.3.16 picocolors: 1.1.1 @@ -8332,7 +8332,7 @@ snapshots: dependencies: lightningcss: 1.33.0 picomatch: 4.0.5 - postcss: 8.5.24 + postcss: 8.5.25 rolldown: 1.2.1 tinyglobby: 0.2.17 optionalDependencies: @@ -8409,7 +8409,7 @@ snapshots: webpack-sources@3.5.1: {} - webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.24): + webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.25): dependencies: '@types/estree': 1.0.9 '@types/json-schema': 7.0.15 @@ -8425,7 +8425,7 @@ snapshots: events: 3.3.0 graceful-fs: 4.2.11 mime-db: 1.54.0 - minimizer-webpack-plugin: 5.6.1(esbuild@0.28.1)(postcss@8.5.24)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.24)) + minimizer-webpack-plugin: 5.6.1(esbuild@0.28.1)(postcss@8.5.25)(webpack@5.109.1(esbuild@0.28.1)(postcss@8.5.25)) neo-async: 2.6.2 schema-utils: 4.3.3 tapable: 2.3.3