home
Write React. Ship agent-native apps everywhere.
WAID packages your Vite + React app to Web, Desktop, iOS, and Android on the detir runtime, where every app is agent-controllable and can talk to any other app over the relay.

targets
One build. Every surface.
One Vite dist, packaged four ways. Desktop, iOS, and Android embed the detir runtime and draw on the GPU; the browser gets the same dist as static files.
Custom runtime built on wgpu
One renderer, compiled per platform - Metal on iOS, Vulkan or GLES on Android, wgpu on desktop. Your interface is drawn on the GPU, not handed to whatever webview the OS shipped this year.
How rendering workswhy waid
Everything you need to ship agent-native apps.
One codebase, every platform
Package a single React dist to Web, Desktop, iOS, and Android, rendered natively by the detir runtime, not a webview.
Learn moreAgent-native by default
waid app scan finds action candidates in your app’s source. Review and author them as named actions like purchase_order.create that agents can call.
Learn moreApps that talk to each other
The runtime relays messages app-to-app and agent-to-app, so your tools compose instead of living in silos.
Learn moreReal React, no new language
Vite, Tailwind, shadcn/ui. No IR, no DSL, no bytecode step. The dist is the app; the runtime renders it.
Learn moreworkflow
From React source to native apps.
- 01
waid newStart from React
Scaffold a Vite + React + Tailwind app with shadcn/ui already wired up.
- 02
waid app scanMake it agent-native
Find action candidates in your app’s source to review and implement.
- 03
waid devDevelop live
Run Vite HMR and preview your app in the Detir runtime.
- 04
waid buildShip everywhere
Bundle one dist into native artifacts for every platform.
agents & relay
Agent actions and the relay
waid app scan identifies action candidates in your app’s source. Review them and author scoped handlers for named calls like purchase_order.create.
The detir runtime relays those calls between apps and agents, so a tool in one app can invoke an action in another, and an agent can orchestrate them all.
the payoff
Agents can call the apps you build
PECO is an agent that reaches apps over MCP. Publish reviewed actions from your WAID apps so any compatible agent can call them.
- apps
- Ops console
- Approvals
- Field app
- systems
- SCM
- RMS
- WMS

the alternatives
How WAID compares
Four serious tools solve part of this. Each gives something up to do it - and where WAID is the wrong choice, that’s written down too.
| capability | WAID | React Native | Tauri | Flutter | Electron |
|---|---|---|---|---|---|
| Write it in React and TypeScript | Yes: React + TS | Yes: React + TS | Yes: any web stack | No: Dart + widgets | Yes: any web stack |
| One renderer you control on every target | Yes: detir-scene, wgpu | No: OS widget trees | No: system webview | Yes: Impeller | No: bundled Chromium |
| iOS and Android | Yes: .ipa and .apk | Yes: its home ground | Partial: newer, since v2 | Yes: first-class | No: not addressed |
| A real web target: DOM, SEO, DevTools | Yes: the dist is a site | Partial: RN-Web, separate | Yes: it is a web app | No: canvas, no SEO | Yes: it is a web app |
| No browser bundled with each app | Yes: a runtime, not a browser | Yes: native views | Yes: uses the OS webview | Yes: own renderer | No: Chromium per app |
| App actions callable by agents over MCP | Yes: waid app scan | No: build it yourself | No: build it yourself | No: build it yourself | No: build it yourself |
- the architecture gives you this
- possible, with a caveat that bites
- not in the model
developers
Built on React, Vite and Tailwind
No IR, no directive language, no bytecode step. Author with Vite, Tailwind, and shadcn/ui, WAID packages the dist and the detir runtime renders it natively.
// App.tsx: ordinary React. No WAID-specific APIs.export default function App() { const [count, setCount] = useState(0) return ( <Button onClick={() => setCount((c) => c + 1)}> Count: {count} </Button> )}Building something cross-platform and agent-native?
We’re onboarding a small group of design partners. Tell us what you’re building.