Ship

One UI. Web, desktop, and mobile.

The views, components, routes, and API already written for the web are the application. Craft, the native runtime Stacks builds on, wraps that same STX UI in a desktop window with a system tray, or a native iOS and Android shell, so a feature built once ships to every device without a second codebase to keep in sync.

What you get.

All of it in the same install, with nothing to wire together first.

Desktop

buddy dev:desktop opens the dashboard or app in a native Craft window; buddy build:desktop compiles a launcher with the runtime pinned and checksummed alongside it.

System tray

Tray-only builds ship from the same views, for a menu-bar utility instead of a full window.

iOS and Android

buddy build:ios and buddy build:android generate the native Xcode and Gradle projects from config/mobile.ts and the app’s existing STX views.

Native capabilities

Safe areas, haptics, and native sharing are STX composables, called the same way from a component that also renders on the web.

One config, many targets

App name, bundle ID, icons, and permissions live in config/mobile.ts, read by every native build.

Store delivery

Builds are provenance-stamped and ready for the App Store, Google Play, or the Mac App Store.

From the command line.

Buddy scaffolds, runs, and ships this the same way it does the rest of the app.

buddy dev:desktop buddy build:ios buddy build:android

These share the same models, config, and types, so using them together costs nothing extra.