/** @type {import('next').NextConfig} */ const nextConfig = { reactStrictMode: true, // Performance optimizations swcMinify: true, compress: true, // Image optimization images: { formats: ['image/webp', 'image/avif'], minimumCacheTTL: 60, dangerouslyAllowSVG: true, contentSecurityPolicy: "default-src 'self'; script-src 'none'; sandbox;", }, // Experimental features for better performance experimental: { optimizeCss: true, scrollRestoration: true, }, // Headers for better caching and security async headers() { return [ { source: '/(.*)', headers: [ { key: 'X-Frame-Options', value: 'DENY', }, { key: 'X-Content-Type-Options', value: 'nosniff', }, { key: 'Referrer-Policy', value: 'origin-when-cross-origin', }, ], }, { source: '/(.*)\\.(ico|png|jpg|jpeg|gif|webp|svg|mp4|webm)', headers: [ { key: 'Cache-Control', value: 'public, max-age=31536000, immutable', }, ], }, ]; }, // Bundle analyzer (optional - uncomment to analyze bundle size) // webpack: (config, { isServer }) => { // if (!isServer) { // config.resolve.fallback = { // ...config.resolve.fallback, // fs: false, // }; // } // return config; // }, }; export default nextConfig;