Bring JavaScript and Web Dev to Flutter
See the code
Bring JavaScript and Web Dev to Flutter
Learn WebF | Developer Guide | Add WebF to Flutter
WebF is a W3C/WHATWG-compliant web runtime for Flutter that implements HTML, CSS, and the DOM, running JavaScript in a browser-like environment. It's not a browser—it's an application runtime optimized for building native apps using web technologies.
Unlike traditional WebViews, WebF features:
Build Fast. Ship Fast. Run Fast.
WebF seamlessly glues Web, Flutter, and Native platforms together, enabling you to:
fetch, XMLHttpRequest, WebSockets, localStorage, sessionStorage, Canvas 2D, SVG, URL parsing, timersFlutterGestureDetectorWebF combines two complementary layers to deliver a complete web runtime:
Key Optimization: WebF tracks "dirty" nodes to recalculate only affected subtrees (similar to React's reconciliation), and batches DOM updates to process them in the next frame, preventing layout thrashing.
Get started quickly using WebF Go - a preview app that lets you test WebF applications on real devices without building a custom Flutter app.
1. Download WebF Go
2. Create Your Project
npm create vite@latest
Select your preferred framework (React, Vue, Svelte, etc.) when prompted.
3. Start Development Server
cd <your-project-name>
npm install
npm run dev
4. Load in WebF Go
http://localhost:5173)Your application will render in the native WebF environment with hot-reload support for instant code changes!
Add WebF to your existing Flutter app to enable web content rendering.
Add WebF dependency to your pubspec.yaml:
dependencies:
webf: ^0.23.10 # Check pub.dev for latest version
Run flutter pub get
import 'package:webf/webf.dart';
void main() {
// Initialize WebF controller manager
WebFControllerManager.instance.initialize(
WebFControllerManagerConfig(
maxAliveInstances: 5,
maxAttachedInstances: 3,
),
);
// Add a controller with prerendering
WebFControllerManager.instance.addWithPrerendering(
name: 'home',
createController: () => WebFController(),
bundle: WebFBundle.fromUrl('https://example.com/'),
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: WebF.fromControllerName(
controllerName: 'home',
loadingWidget: CircularProgressIndicator(),
),
),
);
}
}
WebF supports multiple content sources:
WebFBundle.fromUrl('https://example.com/')WebFBundle.fromUrl('assets:///assets/web/index.html')WebFBundle.fromUrl('http://localhost:3000/')WebFBundle.fromContent('<!DOCTYPE html>...')📚 Complete Documentation - Learn WebF architecture, developer guides, and Flutter integration
WebF is ideal for:
WebF is dual-licensed to provide flexibility for different use cases:
WebF is licensed under the GNU General Public License version 3 (GPL-3.0) with the OpenWebF Enterprise Exception.
What this means:
For commercial applications that cannot comply with GPL-3.0 requirements, we offer the OpenWebF Enterprise License:
Enterprise Installation:
dependencies:
webf: ^0.23.10 # Enterprise version available on pub.dev
| Use Case | Recommended License | Notes |
|---|---|---|
| Open-source applications | GPL-3.0 (Open Source) | Your app must be GPL-3.0 compatible |
| Published npm/Flutter packages | Apache-2.0 or MIT | Your package can use permissive licenses |
| Internal/non-distributed apps | GPL-3.0 (Open Source) | No distribution = no GPL obligations |
| Commercial closed-source apps | Enterprise License | Required for proprietary applications |
| Apps distributed via app stores | Enterprise License | Required unless app is open source |
| Educational/research projects | GPL-3.0 (Open Source) | Free for academic use |
For licensing questions or to obtain an Enterprise License:
See the LICENSE file for the full GPL-3.0 license text and OpenWebF Enterprise Exception.
421 followers · starred Jul 2024
159 followers · starred Jan 2026
641 followers · starred Dec 2022
590 followers · starred Dec 2025
Bring JavaScript and Web Dev to Flutter
See the code
Bring JavaScript and Web Dev to Flutter
Learn WebF | Developer Guide | Add WebF to Flutter
WebF is a W3C/WHATWG-compliant web runtime for Flutter that implements HTML, CSS, and the DOM, running JavaScript in a browser-like environment. It's not a browser—it's an application runtime optimized for building native apps using web technologies.
Unlike traditional WebViews, WebF features:
Build Fast. Ship Fast. Run Fast.
WebF seamlessly glues Web, Flutter, and Native platforms together, enabling you to:
fetch, XMLHttpRequest, WebSockets, localStorage, sessionStorage, Canvas 2D, SVG, URL parsing, timersFlutterGestureDetectorWebF combines two complementary layers to deliver a complete web runtime:
Key Optimization: WebF tracks "dirty" nodes to recalculate only affected subtrees (similar to React's reconciliation), and batches DOM updates to process them in the next frame, preventing layout thrashing.
Get started quickly using WebF Go - a preview app that lets you test WebF applications on real devices without building a custom Flutter app.
1. Download WebF Go
2. Create Your Project
npm create vite@latest
Select your preferred framework (React, Vue, Svelte, etc.) when prompted.
3. Start Development Server
cd <your-project-name>
npm install
npm run dev
4. Load in WebF Go
http://localhost:5173)Your application will render in the native WebF environment with hot-reload support for instant code changes!
Add WebF to your existing Flutter app to enable web content rendering.
Add WebF dependency to your pubspec.yaml:
dependencies:
webf: ^0.23.10 # Check pub.dev for latest version
Run flutter pub get
import 'package:webf/webf.dart';
void main() {
// Initialize WebF controller manager
WebFControllerManager.instance.initialize(
WebFControllerManagerConfig(
maxAliveInstances: 5,
maxAttachedInstances: 3,
),
);
// Add a controller with prerendering
WebFControllerManager.instance.addWithPrerendering(
name: 'home',
createController: () => WebFController(),
bundle: WebFBundle.fromUrl('https://example.com/'),
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: WebF.fromControllerName(
controllerName: 'home',
loadingWidget: CircularProgressIndicator(),
),
),
);
}
}
WebF supports multiple content sources:
WebFBundle.fromUrl('https://example.com/')WebFBundle.fromUrl('assets:///assets/web/index.html')WebFBundle.fromUrl('http://localhost:3000/')WebFBundle.fromContent('<!DOCTYPE html>...')📚 Complete Documentation - Learn WebF architecture, developer guides, and Flutter integration
WebF is ideal for:
WebF is dual-licensed to provide flexibility for different use cases:
WebF is licensed under the GNU General Public License version 3 (GPL-3.0) with the OpenWebF Enterprise Exception.
What this means:
For commercial applications that cannot comply with GPL-3.0 requirements, we offer the OpenWebF Enterprise License:
Enterprise Installation:
dependencies:
webf: ^0.23.10 # Enterprise version available on pub.dev
| Use Case | Recommended License | Notes |
|---|---|---|
| Open-source applications | GPL-3.0 (Open Source) | Your app must be GPL-3.0 compatible |
| Published npm/Flutter packages | Apache-2.0 or MIT | Your package can use permissive licenses |
| Internal/non-distributed apps | GPL-3.0 (Open Source) | No distribution = no GPL obligations |
| Commercial closed-source apps | Enterprise License | Required for proprietary applications |
| Apps distributed via app stores | Enterprise License | Required unless app is open source |
| Educational/research projects | GPL-3.0 (Open Source) | Free for academic use |
For licensing questions or to obtain an Enterprise License:
See the LICENSE file for the full GPL-3.0 license text and OpenWebF Enterprise Exception.
421 followers · starred Jul 2024
159 followers · starred Jan 2026
641 followers · starred Dec 2022
590 followers · starred Dec 2025