How to Deploy Flutter Web App on Netlify (Full Guide)
Deploy a Flutter web app on Netlify, GitHub Pages, Firebase, Vercel, or Docker+nginx — build flags, --base-href fixes, and an honest hosting verdict.
flutter build web is the easy 10%. The other 90% is the host: --base-href mismatches that blank-screen your app, missing SPA rewrites that 404 on every refresh, WASM builds that need special headers. Most stale guides still recommend deprecated renderer flags, so let's do this properly. This guide walks through how to deploy Flutter web app on Netlify first — the host with the biggest freshness gap in current guides — then covers GitHub Pages, Firebase Hosting, Vercel, and Docker+nginx, with a blank-screen triage checklist and an honest hosting verdict at the end. Everything here targets Flutter 3.x. What you'll learn How to build Flutter web correctly: release mode, WASM, and --base-href How to deploy to Netlify with netlify.toml (build config + SPA rewrites + headers) How to deploy to GitHub Pages with a GitHub Actions workflow How to deploy to Firebase Hosting and Vercel How to deploy with Docker and nginx on your own server How to triage the classic blank-screen-after-deploy Which host to pick for which kind of app Step 0 — Build it right: release, WASM, and --base-href Before touching any host, get the build right. Three flags matter for how to deploy flutter web app projects today. Release mode — always. Debug builds are unoptimized and enormous: flutter build web --release The output lands in build/web/ . That directory is what you deploy, on every host. WASM vs JavaScript. Current Flutter 3.x can compile to WebAssembly for a real performance uplift on supported browsers: flutter build web --wasm --release WASM builds need Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy headers to run (more on that in the Netlify and nginx sections). If your host can't set custom headers, stick with the default JS build — it runs everywhere with no…