What is Fuse?
SolidJS 2.0 inside Flutter, rendering native widgets
Fuse lets you write your UI in SolidJS and render native Flutter widgets. It's not a webview — your JSX compiles to real Flutter layout, gestures, and navigation via an embedded JavaScript engine (QuickJS).
Signals update widget props. Flutter rebuilds. Events flow back as function calls. The reactive loop is seamless.
Quick taste
A counter app — the JS component and the Dart entry point that boots it:
import { createSignal } from "solid-js";
export default function App() {
const [count, setCount] = createSignal(0);
return (
<view
flex={{ align: "center", justify: "center", expand: true }}
padding={24}
>
<text fontSize={48} fontWeight="bold">
{count()}
</text>
<gestureDetector onTap={() => setCount((c) => c + 1)}>
<view
padding={{ horizontal: 24, vertical: 12 }}
decoration={{ color: "blue", borderRadius: 8 }}
>
<text color="white" fontSize={16}>
Tap me
</text>
</view>
</gestureDetector>
</view>
);
}import 'package:flutter/material.dart';
import 'package:solid_fuse/solid_fuse.dart';
import '_generated/fuse_packages.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
final runtime = await FuseRuntime.create();
registerFusePackages(runtime);
runApp(MaterialApp(home: FuseView(runtime: runtime)));
}That's the entire app. fuse dev starts both Vite and Flutter — hot module replacement included.