Example Apps
Each example in examples/ is a
complete runnable app (ND_SCRIPT=examples/<name>/main.tsx), and each doubles as the acceptance
surface for a framework capability. The screenshots below are captured from the real hosts: the
AppKit shell on macOS and the GTK host under GNOME, both rendering the same unchanged app tree.
Counter
Section titled “Counter”The hello-world app: a click counter plus Suspense and useTransition running under a ticking
re-render. Source


The smallest real app: a single-pane task list showing the menu-bar and toolbar chrome machinery scaled down to one window. Source


A three-pane note-taking app (folders, list, editor) with native chrome, a menu bar, search, and pinning — the framework-suitability stress test. Source


Settings
Section titled “Settings”A two-pane preferences window built from the boxed-list widgets: real AdwPreferencesGroup rows on
GTK, grouped form rows on macOS.
Source


Gallery
Section titled “Gallery”Every widget in one tabbed window — the acceptance surface the drive scripts assert against. Source


SourceTree
Section titled “SourceTree”The <sourcetree> sidebar widget: sections, a three-level chain, captions, badges, and per-row
actions. Source


Terminal-style split panes over @nativedesktop/panes, with the layout persisted through
createStore. Source


Terminal
Section titled “Terminal”A Ghostty-style tabbed terminal: every tab is its own <window tabGroup> root running an
independent shell over a real PTY.
Source


Browser
Section titled “Browser”A small Min-style browser with native system tabs — one <webview> per tab window, popups and
downloads routed through app events.
Source


Dialogs
Section titled “Dialogs”Every dialog surface in one window: app-level dialog.*, per-window showAlert / openFile /
saveFile, and the dialog-scripting hooks automation uses.
Source


Command Palette
Section titled “Command Palette”A controlled Cmd-K palette used as a directory picker: the app owns the query and recomputes the result list per keystroke. Source


Multi-Window
Section titled “Multi-Window”Two windows driven by one React tree, with a live <webview> that portals between them without
reloading. Source

Gestures
Section titled “Gestures”The input-synthesis probe: sliders, tables, checkboxes, and text fields laid out as deterministic
targets for the pointer / drag / keys automation RPCs.
Source


Errors
Section titled “Errors”The survivable error policy: caught render throws, report-and-survive rejections, and the fatal crash overlay. Source


Inspector
Section titled “Inspector”The HIG design-gap batch: an inspector split pane, a prominent toolbar button, and edge-to-edge content. Source

