NativeDesktop

Examples

Every example app in the repository, live on the web and captured on each OS.

Each example is a full app under examples/ that CI builds for every target. The Web tab runs the example in this page when it builds for the browser; the macOS, Linux and Windows tabs show what the test harness captured on that OS for the current version of the example.

Hello

The smallest app: a toolbar button, a count and window controls placed by coordinates.

Example: Hello. The smallest app: a toolbar button, a count and window controls placed by coordinates. Source in examples/hello. It also runs live in the docs app.
Hello on macOS

Captured on macOS 27.0, 2026-10-14.

Notes

A multi-file app: source list sidebar, toolbar, a virtual list of notes, an editor, the command palette, gestures and settings.

Example: Notes. A multi-file app: source list sidebar, toolbar, a virtual list of notes, an editor, the command palette, gestures and settings. Source in examples/notes.

One page per built-in component: palette, source list, toasts, banner, forms, tabs, split view, status page, dialogs and media.

Example: Gallery. One page per built-in component: palette, source list, toasts, banner, forms, tabs, split view, status page, dialogs and media. Source in examples/gallery. It also runs live in the docs app.

Overrides

Every override layer in one window: element style, per platform, native mapping, theme (app, window, subtree) and patterns.

Example: Overrides. Every override layer in one window: element style, per platform, native mapping, theme (app, window, subtree) and patterns. Source in examples/overrides. It also runs live in the docs app.
Overrides on macOS

Captured on macOS 27.0, 2026-10-14.

Chrome

The window structure a Mail-style app declares: scaffold, source list, toolbar, inspector, menu bar, alert, file picker and a settings window.

Example: Chrome. The window structure a Mail-style app declares: scaffold, source list, toolbar, inspector, menu bar, alert, file picker and a settings window. Source in examples/chrome.
Chrome on macOS

Captured on macOS 27.0, 2026-10-14.

Places

App-defined native widgets: an objc2 MapKit view and a Swift-hosted SwiftUI gauge, each with a drawn fallback.

Example: Places. App-defined native widgets: an objc2 MapKit view and a Swift-hosted SwiftUI gauge, each with a drawn fallback. Source in examples/native-widget.
Places on macOS

Captured on macOS 27.0, 2026-10-14.

Scroll

A virtualized list of 100 000 rows with heights from 28 to 124 points, the list nd diag scroll measures.

Example: Scroll. A virtualized list of 100 000 rows with heights from 28 to 124 points, the list `nd diag scroll` measures. Source in examples/scroll. It also runs live in the docs app.
Scroll on macOS

Captured on macOS 27.0, 2026-10-14.

Overlays

A popover, a modal panel and a context menu over a native button and a live web page, none of them leaking input.

Example: Overlays. A popover, a modal panel and a context menu over a native button and a live web page, none of them leaking input. Source in examples/overlays.
Overlays on macOS

Captured on macOS 27.0, 2026-10-14.

Tabs

Browser-style window tabs: every tab is a window of one tab group, with the system tab bar on macOS.

Example: Tabs. Browser-style window tabs: every tab is a window of one tab group, with the system tab bar on macOS. Source in examples/tabs.
Tabs on macOS

Captured on macOS 27.0, 2026-10-14.

Browser

A small browser: tabs in the sidebar, an address field in the toolbar, devtools and downloads, on WKWebView or CEF.

Example: Browser. A small browser: tabs in the sidebar, an address field in the toolbar, devtools and downloads, on WKWebView or CEF. Source in examples/browser.

Terminal

A terminal with tabs over libghostty-vt: one shell per tab, titled by what the shell reports.

Example: Terminal. A terminal with tabs over libghostty-vt: one shell per tab, titled by what the shell reports. Source in examples/terminal.
Terminal on macOS

Captured on macOS 27.0, 2026-10-14.

System

Every nd::system service behind a button: dialogs, clipboard, notifications, keychain, tray, media keys and audio with a spectrum.

Example: System. Every nd::system service behind a button: dialogs, clipboard, notifications, keychain, tray, media keys and audio with a spectrum. Source in examples/system.
System on macOS

Captured on macOS 27.0, 2026-10-14.

Pacing

Two windows animating every frame, each at the refresh rate of the display it is on.

Example: Pacing. Two windows animating every frame, each at the refresh rate of the display it is on. Source in examples/pacing.
Pacing on macOS

Captured on macOS 27.0, 2026-10-14.

Discord presence

Discord Rich Presence as a plugin, written against nd-plugin and nd-ipc the way an outside crate would be.

Example: Discord presence. Discord Rich Presence as a plugin, written against nd-plugin and nd-ipc the way an outside crate would be. Source in examples/discord-rpc.