The app below is a real flutter build web output stamped with dart run web_update_guard stamp. The guard polls version.json and compares build IDs. Press Simulate a new deploy, then Check now inside the app: a demo service worker serves the app a version.json with a different build ID, exactly as a redeploy would, and the guard reacts. “Purge caches & reload” clears the simulation too, so the app comes back up to date.