Build widgets with JavaScript + JSX
ScriptWidget lets you author widgets in a familiar JS + JSX workflow, then renders them with a native SwiftUI runtime across iOS, iPadOS, and macOS.
// ScriptWidget
// https://xnu.app/scriptwidget
$render(
<vstack frame="max" padding="12" background="#0f172a">
<text font="caption" color="#94a3b8">Hello ScriptWidget</text>
<text font="title3" color="#e2e8f0">Widgets with JavaScript + JSX</text>
</vstack>
);Edit scripts in the app and preview instantly. Widgets refresh automatically on device.
Composable UI
Build layouts with JSX components mapped to native SwiftUI views, including stacks, charts, gauges, and custom shapes.
Powerful runtime APIs
Access system info, device state, networking, storage, and read-only HealthKit plus Location data through a curated JavaScript API surface.
Widgets everywhere
Ship the same script to Home Screen widgets, Live Activities, and Dynamic Island surfaces with adaptive layouts.
Documentation
Jump into the docs for API references, JSX component catalog, and ready-made templates.
Build flow
A quick overview of the ScriptWidget workflow from idea to widget.
Ready to build your first widget?
Download ScriptWidget and start scripting your own widgets today.