import { createMDX } from "fumadocs-mdx/next"; import type { NextConfig } from "next"; import createNextIntlPlugin from "next-intl/plugin"; // Create the next-intl plugin const withNextIntl = createNextIntlPlugin("./i18n/request.ts"); const nextConfig: NextConfig = { output: "standalone", reactStrictMode: false, typescript: { ignoreBuildErrors: true, }, images: { remotePatterns: [ { protocol: "https", hostname: "**", }, ], }, // Turbopack config (used during `next dev --turbopack`) turbopack: { rules: { "*.svg": { loaders: ["@svgr/webpack"], as: "*.js", }, }, }, // Configure webpack (SVGR) webpack: (config) => { // SVGR: import *.svg as React components const fileLoaderRule = config.module.rules.find((rule: any) => rule.test?.test?.(".svg")); config.module.rules.push( // Re-apply the existing file loader for *.svg?url imports { ...fileLoaderRule, test: /\.svg$/i, resourceQuery: /url/, // e.g. import icon from './icon.svg?url' }, // Convert all other *.svg imports to React components { test: /\.svg$/i, issuer: fileLoaderRule.issuer, resourceQuery: { not: [...fileLoaderRule.resourceQuery.not, /url/] }, use: ["@svgr/webpack"], } ); fileLoaderRule.exclude = /\.svg$/i; return config; }, // PostHog reverse proxy configuration // This helps bypass ad blockers by routing requests through your domain async rewrites() { return [ { source: "/ingest/static/:path*", destination: "https://us-assets.i.posthog.com/static/:path*", }, { source: "/ingest/:path*", destination: "https://us.i.posthog.com/:path*", }, { source: "/ingest/decide", destination: "https://us.i.posthog.com/decide", }, ]; }, // Required for PostHog reverse proxy to work correctly skipTrailingSlashRedirect: true, }; // Wrap the config with MDX and next-intl plugins const withMDX = createMDX({}); export default withNextIntl(withMDX(nextConfig));