Wraps reference/sp404-layers as a sideloadable APK without editing the reference, which stays the frozen spec for the Phase 2 React port. - sync-www.sh builds www/ from reference/ + native/, asserting each patch anchor so a reference change fails loudly rather than shipping broken - drops the service worker (would serve a stale app after an APK update) - haptics via a navigator.vibrate override, so buzz() needs no change - localStorage mirrored into Preferences; sync load()/save() untouched - hardware back: sheet -> Explore tab -> exit - edge-to-edge handled in MainActivity: Android 16 + targetSdk 36 removes the opt-out, and a WebView never fills env(safe-area-inset-*), so insets are pushed into CSS custom properties instead Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
SP-404MK2 layers (PWA)
Static files only. Serve this folder over HTTPS (required for install and offline).
Quick options:
- Nginx container behind Nginx Proxy Manager: mount this folder at /usr/share/nginx/html.
docker run -d --name 404layers -p 8404:80 -v $PWD:/usr/share/nginx/html:ro nginx:alpine, then add a proxy host in NPM with a Let's Encrypt cert.- Any static host (Cloudflare Pages, GitHub Pages).
On the phone: open the URL in Chrome, menu, "Install app" / "Add to Home screen".
Updating: edit files, bump V in sw.js, redeploy. The page is fetched network-first, so it updates on next open when online.