W3 / DevelopersSDK 2.0.0Source & examples ↗

Your first W3Booster app

Start with a dashboard you can see and change. You need Node.js 22.22.3 or newer and a terminal. You do not need an account, Warcraft III, or the desktop client for this first step.

1. Create and run

npx --yes --package=github:W3Booster/app-starter w3booster-create my-app
cd my-app
npm ci
npm run dev

Open http://localhost:5173/. Success means you can see two players, a game clock, and a DEMO DATA badge. If port 5173 is occupied, stop your other development server or explicitly choose another port and use that same address when testing in W3Booster.

Try the hosted starter first or browse its source. Prefer a complete Angular app? Start from Match Vision.

2. Make a visible change

Open src/main.ts, change “Your first app. Already running.” to your own heading, and save. The browser updates. Open src/render.ts to change the player cards. This is one minimal app, without official example identities or a multi-app router.

The application owns HTML, CSS, and presentation. The SDK owns the connection and match state. runtime.lifecycle.subscribe() immediately supplies a snapshot and delivers subsequent changes; runtime.start() waits for synchronized data; runtime.stop() cleans up the runtime.

The starter handles loading, no match, missing optional fields, startup errors, and cleanup. Select no match, missing data, teams, or finished from the demo scenario menu to see those states without starting a game. Use Connection & capabilities to inspect what your app can currently read and do.

3. Register only when you want real data

Enable Developer Mode from the W3Booster account menu. Open Apps → Developer → Create app, choose a name and description, and configure an application surface. For local development, use http://localhost:5173/?demo=0. A public release needs your deployed HTTPS URLs.

Request match:read and players:read for this dashboard; the minimal definition is in app-definition.json. Resources, heroes, typed settings, and overlays have their own focused example repositories. Your application's database record is authoritative for its scopes and settings.

W3Booster creates a public client ID. Copy it and run this in your project:

npx w3booster-settings init YOUR_CLIENT_ID --endpoint https://api.w3booster.com

This replaces the starter's offline placeholder with src/w3booster.generated.ts and adds w3booster:sync and w3booster:check scripts. Commit the generated file and package.json. The ID is not a password; it does not grant data access.

4. Launch with real authorization

Keep the development server running. In My apps, choose Test locally and enter:

Surface Local URL
Application http://localhost:5173/?demo=0

The minimal starter supports the application surface. For transparent output, use Minimal Match Strip, an overlay-only example. Start the local test, then open the application from W3Booster. Success means LIVE CONNECTION and Connected · synchronized. “Waiting for a match” is normal when no game is active.

Opening localhost directly does not authorize live data. W3Booster supplies the temporary launch credential, and the SDK consumes it automatically. Do not copy tokens or write your own WebSocket connection code. Local tests are owner-only and expire after 12 hours.

5. Change settings and ship

After editing your app definition in W3Booster:

npm run w3booster:sync
npm run check
npm run build

Upload dist/ to your HTTPS host. Replace the registered surface URLs with your deployed URLs and keep demo=0 for live surfaces. Invite testers before submitting for review. The publishing guide covers overlays, embedding, deployment, and updates.

Continue with working examples, feature guides, API reference, or troubleshooting.