The app holds a screen wake lock, and in practice that is enough: installed as a PWA, on a charger, with battery saver off, the screen simply stays on. The Wake Lock API is a request though, not a guarantee, and the lock screen, an incoming call or battery saver can revoke it. The steps below make it survive those moments. Five minutes, once.
- Install as a PWA. Chrome menu, "Add to Home Screen", then launch from the icon, not from a tab. Only an installed app gets fullscreen display and its own window, so another tab cannot take the wake lock away.
- Keep it on the charger. Not for the screen, the wake lock holds on battery too, but a lit display empties a phone in hours.
- Screen timeout to maximum, as a backstop for the moments the wake lock is not held.
- Optional, if the screen still sleeps: developer options, "Stay awake". Tap the build number in About phone seven times to unlock developer options, then enable "Stay awake" (on some devices "Keep screen on while charging"). It beats anything JavaScript can do, but it only works on a cable, and most phones never need it.
- Adaptive brightness off, slider to 10 to 20 percent. Adaptive dims the clock unreadable in a dark room. The low fixed value is also the main defense against OLED burn-in: a static image at eight hours a day burns in within months, and pixels age two to three times faster at full brightness. The app's pixel shift only helps at the margin.
- Auto rotate to taste. The layout handles both orientations: portrait stacks the cards, landscape puts them side by side.
Take the case off. Continuous charging plus a lit display makes heat, a case traps it, and sustained heat above roughly 45 degrees Celsius damages the battery for good. For a display running many hours a day, a spare phone spares your daily one the burn-in.
True kiosk fullscreen, with the Android status and navigation bars gone, is not reachable from a web app; that needs an MDM or a kiosk launcher. A tap toggles browser fullscreen and the installed PWA drops the browser chrome. That is the ceiling.
- Running from the home screen icon, not a tab?
- Cable actually charging? "Stay awake" does nothing on battery.
- Battery saver off? It revokes wake locks regardless.
- Served over HTTPS? The Wake Lock API needs a secure context (
localhostcounts). - Battery optimisation: Settings, Apps, the clock, Battery, set to unrestricted.