Introduction
WAID lets you ship one React app to every platform. You build an ordinary Vite + React + Tailwind app; WAID packages it into native apps for desktop, iOS, and Android, and serves it as a normal web app for the browser, from a single codebase, with no per-platform forks.
You write the React you already know. There are no WAID-specific components, directives, or APIs to learn. Anything that builds to a static Vite bundle works. On native platforms your app is rendered by a bundled GPU runtime, so it looks and performs the same everywhere; on the web it's a real web app (real DOM, SEO, accessibility, DevTools).
What you do with WAID#
- Sign in and create an app:
waid loginselects your ICE environment;waid newscaffolds a Vite + React + Tailwind + shadcn project. - Develop it:
waid devgives you hot reload while you build the UI in React. - Configure it: one
waid.config.jsonsets your app's name, icon, identity, and the device capabilities it needs. - Build it:
waid build --target <platform>produces the native artifact (or the web bundle). - Ship it:
waid deployinstalls it on a device; sign a release for the app stores.
Scan and sync apps and services#
Use waid app scan for frontend action candidates and waid service scan for
service MCP and dataset artifacts. Both inspect local source without login.
After review, waid app sync and waid service sync submit immutable candidates to
ICE Develop using your signed-in environment. Publication and tenant installation
are separate ICE steps. See the lifecycle reference.
Is WAID for you?#
WAID is a good fit when you want one React codebase to run natively on mobile and desktop and as a real website, with consistent output across platforms.
It may not be the right fit if you need a single platform-perfect native app (use that platform's native toolkit), or deep OS integrations beyond the capabilities WAID exposes.