v1.7.0: installable offline app, Android/iOS, faster first paint
Live at https://whoislying.ch.
New
- Installable app (PWA): Settings → Install app (Android, computers), or Share → Add to Home Screen on iPhone (Settings shows the steps). It opens full-screen with the mask icon.
- Works offline: after the first visit, the one-phone game loads and plays without a connection. Rooms and AI need one.
- Android and iOS apps with Capacitor that load the live site, so every web release updates them too.
just app-androidbuilds an APK;just app-iosopens Xcode.
Faster
- First paint is ~3× sooner: the start screen's top is in the server HTML (2.0 s → 0.7 s on a mid-range phone over 4G), and the cards deal in once the app is live.
- Profiling showed the server functions must sit next to the database (US east). Pinned to
iad1and measured; each room request now reads the room and its players in parallel.
Fixes (code review)
- The service worker never caches Next's route data (it must match the deployed build) or
/admin, keeps only the start page for offline use, and starts a fresh cache with every release. - The iOS app declares its app-bound domain, which iOS requires before it runs the offline worker.
Quality
- Offline tests run against a real production build; 73 e2e + 54 unit tests.
🤖 Generated with Claude Code