Skip to main content
InboxDraftsSentArchiveInboxApp.tsx1import {View, Text} from 'react-native';2export function App() {3 return (4 <View style={styles.root}>5 <Text>Hello, desktop!</Text>6 </View>7 );8}CopyPasteGo to definitionDashboardDashboard2,41886%312

react-native-gpui

React Native for macOS, Windows, and Linux.

Create native desktop apps for macOS, Windows, and Linux using React

react-native-gpui brings React Native to the desktop.
Write your app once in React and ship it as a native executable on every desktop platform.

App.tsx
function App() { 
return (
<View style={styles.root}>
<Logo />
<Text>
Welcome to React Native
on Desktop!
</Text>
</View>
);
}
Welcome to React Nativeon Desktop!Get started

Written in JavaScript, rendered on the GPU. React primitives are drawn by GPUI, a GPU-accelerated renderer written in Rust, while your app talks to the operating system through native modules.

One renderer, every desktop

react-native-gpui draws your app with one GPU-accelerated renderer on macOS, Windows, and Linux, so it looks and behaves the same everywhere. It provides the core components you know, like View, Text, and Image, plus desktop features like windows, menus, and keyboard shortcuts.

App.tsx<View> <Image /> <Text>Meeting notes</Text> <ScrollView /> <TextInput /></View>JS engineReactFabricC++, YogaGPUIRust, GPUMetal · DirectX · VulkanMeeting notesWrite something…ImageImageTextTextScrollViewScrollViewTextInputTextInputViewView

Everything you need to ship a desktop app

React Native gives you the components. react-native-gpui adds the desktop: windows, menus, a tray, native modules, and the tooling to build and package your app for every platform.

CopyPasteInspect

A real desktop shell

Open multiple windows, build application and context menus, register keyboard shortcuts, and add a tray icon.

JSRustC++

Native modules in Rust or C++

Write Turbo Native Modules in Rust or C++, or load Node addons, and call the operating system from JavaScript.

$ run-desktopMetro readyDev Menu

Developer tools

Run with run-desktop, get Fast Refresh through Metro, and open the dev menu. Package signed installers with package-desktop.

Build your first desktop app

Get Started