This can work over web sockets. We will give developers a small snippet of js to run in their client, which will connect a ws to some service on the pi, possibly the app hosting this client. A unique deployment hash will be given to the running app during compilation and runtime, so the app can use this to distinguish the latest deployment as a new one. This hash should be passed down the websocket, and also provided on websocket reconnect. Then the js we suggest to use shows a banner when a new hash was received through the ws.
This can work over web sockets. We will give developers a small snippet of js to run in their client, which will connect a ws to some service on the pi, possibly the app hosting this client. A unique deployment hash will be given to the running app during compilation and runtime, so the app can use this to distinguish the latest deployment as a new one. This hash should be passed down the websocket, and also provided on websocket reconnect. Then the js we suggest to use shows a banner when a new hash was received through the ws.