NatUI documentation
Build real SwiftUI and WinUI 3 desktop interfaces with React and TypeScript.
NatUI is an alpha React 19 renderer for real native desktop controls. Your TypeScript and React state stay in JavaScript; SwiftUI on macOS or WinUI 3 on Windows owns layout, theming, focus, and accessibility.
No webview, no Electron runtime, no browser layout engine.
import { useState } from 'react';
import { Button, HStack, Text, VStack, run } from '@natui/core';
function App() {
const [count, setCount] = useState(0);
return (
<VStack spacing={12} padding={20} alignment="leading">
<Text font="largeTitle" weight="bold">Hello, native</Text>
<HStack spacing={8}>
<Button onPress={() => setCount((value) => value - 1)}>-</Button>
<Text font="title2" monospaced>{String(count)}</Text>
<Button onPress={() => setCount((value) => value + 1)}>+</Button>
</HStack>
</VStack>
);
}
await run(<App />, { title: 'my app', width: 480, height: 320 });Explore the documentation
- Set up an AI agent with the NatUI skill and machine-readable documentation.
- Create an application with
create-natui-app. - Browse all 37 components.
- Learn how controlled state stays responsive across the native bridge.
- Choose between Node and embedded runtime modes.
- Package an embedded entry as a native application.
- Review the current platform support before depending on a feature.
Current status
NatUI is still in alpha. The registry packages provide the JavaScript runtime,
development tooling, config loader, and project generator. You still build
native hosts from the source repository. Both hosts have real-window
verification for the base demo, kitchen-sink app-shell workflow, and their
embedded JavaScript runtimes. The repository-local packager emits a macOS
.app or one self-contained Windows EXE.