const API_URL = process.env.API_INTERNAL_URL || 'http://localhost:8000'; const nextConfig = { reactStrictMode: false, distDir: ".next-build", // Proxy API and static asset requests to FastAPI backend. // // The /api/v1/* rewrite uses a `missing` condition on the Accept header so // it does NOT match SSE requests (EventSource always sends Accept: text/event-stream). // SSE paths have explicit route handlers in app/api/v1/*/stream/[id]/route.ts // that stream events properly. Normal JSON requests go through the rewrite as before. async rewrites() { return [ { source: '/api/v1/:path*', missing: [ { type: 'header', key: 'accept', value: 'text/event-stream' }, ], destination: `${API_URL}/api/v1/:path*`, }, { source: '/app_data/:path*', destination: `${API_URL}/app_data/:path*`, }, { source: '/static/:path*', destination: `${API_URL}/static/:path*`, }, ]; }, images: { remotePatterns: [ { protocol: "https", hostname: "pub-7c765f3726084c52bcd5d180d51f1255.r2.dev", }, { protocol: "https", hostname: "pptgen-public.ap-south-1.amazonaws.com", }, { protocol: "https", hostname: "pptgen-public.s3.ap-south-1.amazonaws.com", }, { protocol: "https", hostname: "img.icons8.com", }, { protocol: "https", hostname: "present-for-me.s3.amazonaws.com", }, { protocol: "https", hostname: "yefhrkuqbjcblofdcpnr.supabase.co", }, { protocol: "https", hostname: "images.unsplash.com", }, { protocol: "https", hostname: "picsum.photos", }, { protocol: "https", hostname: "unsplash.com", }, ], }, }; export default nextConfig;