Skip to main content
react-native-gtkx

react-native-gtkx

React Native for the Linux desktop.

Hacker News list screen, react-native-gtkx, a native GTK4 window with a search field inside the header barHacker News story screen with comments, pushed with a real Adw.NavigationView transition

examples/hn-app, live in native GTK windows. Tapping a card pushes a real Adw.NavigationView page — the back button, the slide and the preserved list position come from the platform, not from JS.

Native, not a WebView

Apps render as real GTK4/Adwaita widgets through an in-process FFI — no WebView, no canvas rendering. What you see in the window is what gtkx actually built from your React tree.

One codebase, two renderers

The same component tree runs as native GTK4 widgets and, unmodified, as react-native-web in the browser — examples/profile renders one source file with both renderers, without a single @gtkx/* import in it.

The standard RN toolchain

Linux is a React Native out-of-tree platform, not a new API to learn. Add it to an app that already ships iOS/Android, then run:

npx react-native run-linux

Works without libadwaita

react-native-gtkx also runs on plain GTK4, no libadwaita required — a real, supported profile, not an unsupported edge case. Every component's GTK/Adw badge is derived straight from the code and checked by docs:check on every PR, so the matrix can't drift from what's actually shipped. See the plain GTK profile.