/** @type {import('next').NextConfig} */ const nextConfig = { experimental: { appDir: true, }, // Optimize for Vercel deployment output: 'standalone', // Enable compression compress: true, // Optimize images images: { domains: [ 'lh3.googleusercontent.com', 'avatars.githubusercontent.com', // Supabase storage 'beralqryrfyfnhovsaes.supabase.co', ], remotePatterns: [ { protocol: 'https', hostname: '*.supabase.co', pathname: '/storage/v1/object/public/**', }, ], dangerouslyAllowSVG: true, contentSecurityPolicy: "default-src 'self'; script-src 'none'; sandbox;", }, // Headers for security and SEO 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', }, { key: 'X-DNS-Prefetch-Control', value: 'on', }, { key: 'Strict-Transport-Security', value: 'max-age=31536000; includeSubDomains; preload', }, { key: 'Permissions-Policy', value: 'camera=(), microphone=(), geolocation=()', }, { key: 'Content-Security-Policy', value: "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://www.googletagmanager.com https://dev-sender.vercel.app; style-src 'self' 'unsafe-inline' https://fonts.googleapis.com; font-src 'self' https://fonts.gstatic.com; img-src 'self' data: https: blob:; connect-src 'self' https: wss:; frame-src 'self' https://www.googletagmanager.com; object-src 'none'; base-uri 'self';", }, ], }, { source: '/humans.txt', headers: [ { key: 'Content-Type', value: 'text/plain; charset=utf-8', }, ], }, ] }, } module.exports = nextConfig