The Wi-Fi setup page for the classroom Robotics Hub. A headless hub has no screen, so you onboard it to Wi-Fi from a browser over Bluetooth using the open Improv Wi-Fi standard — no app, no cable.
Live: https://better-robotics.github.io/provision/
A single static index.html embeds Improv's <improv-wifi-launch-button> web
component. The component runs entirely in the visitor's browser: it speaks the
Improv GATT protocol over Web Bluetooth, collects the SSID + password, and hands
them to the hub, which joins the network.
This page is presentation only — the provisioning protocol lives in the SDK and in the hub firmware. There's no build step and no backend.
The SDK is vendored under vendor/improv-ble/ rather than loaded from a CDN:
the page handles Wi-Fi credentials, so the script that runs is one we pin and audit,
not one fetched live from a third-party origin. See vendor/improv-ble/SOURCE.md
for provenance and how to re-vendor.
- Desktop Chrome or Edge — Web Bluetooth is Chromium-desktop only (no Safari, no Firefox, no iOS/Android browsers).
- Served over HTTPS (GitHub Pages provides it) — Web Bluetooth refuses to run in a non-secure context.
GitHub Pages serves main at the URL above. Edit index.html, push, done.