Safari-only foreground demo

BLE E2E Chat

One Safari page becomes discoverable, another uses requestDevice() to connect, and both exchange shared-secret encrypted chat messages over a fixed BLE GATT contract while both pages stay in the foreground.

Enter the same shared secret on both phones before you host or connect. Encryption happens in the page layer; the native BLE runtime only transports opaque bytes.

Foreground only
Relay still required for background durability
Hosting Not advertising
Connection Idle
Peer No connected peer
Transport Not negotiated
Frame budget --

Live transcript

Foreground session

On one phone, tap Make Discoverable. On the other, tap Tap To Connect.

The client side always starts with a user tap because beacio mirrors Web Bluetooth transient activation rules.

    Compose

    Send a message

    Fixed GATT contract
    Service
    Browser writes
    Browser notifies

    The discoverable Safari page hosts this exact service. The connecting Safari page sends encrypted messages with uplink writes, and the host page sends its encrypted messages back over downlink notifications.

    Diagnostics

    Event log