Flutter Web runs your Flutter app in the browser. Same Dart, same widgets, same codebase. The output is a static site you can deploy anywhere.

It's best for tools, demos, and internal dashboards. Not a great fit for content-heavy marketing sites, where first-load size and SEO matter more than what Flutter is optimized for.

Setup

Enable web support on your Flutter install, then run it in Chrome.

bash
flutter config --enable-web
flutter run -d chrome

Hot reload works the same as on mobile. Most of your existing widgets will render without changes.

Build

Build a release version to ship.

bash
flutter build web --release

The output lives in build/web. Drop it on Vercel, Netlify, Firebase Hosting, or any static host.

Caveats

Flutter Web has real limits worth knowing up front.

  • First-load size is heavy. The app bundle plus CanvasKit can easily be a few MB. Fine for authenticated tools, rough for public marketing.
  • Native plugins without a web implementation won't work. Most Supabase and Hive stuff works; camera and advanced device plugins often don't.
  • SEO is limited. Flutter renders in Canvas. Search engines can't read it the way they read HTML. For content you want indexed, use Next.js or another server-rendered framework.

If you need a mobile app plus a quick web demo, Flutter Web is fantastic. If you need a real marketing site, use the right tool for the job.