Short answer: install Kapsula (free, Android and iOS), tap Add project, paste your HTML or pick the .html file. It opens as an app with its own storage and real notifications — no app store submission, no build tools, no account.
Opening a local HTML file in Chrome or Safari works for a quick look, but the tab has no home-screen presence, loses state, gets throttled in the background and cannot ring an alarm when the phone is locked. "Add to Home Screen" (PWA) gives you an icon, but still no exact alarms on iOS and unreliable background behaviour on Android.
| Open in browser | PWA / Add to Home Screen | Kapsula | |
|---|---|---|---|
| Install friction | none | needs hosting over HTTPS | paste code or pick a file |
| Exact alarm with app closed | no | no (iOS), unreliable (Android) | yes — real OS alarm |
| State survives | often lost | usually | yes, per-project storage |
| Works offline | file only | with service worker | yes by default |
| Account / server | — | hosting needed | none |
kapsula.notify.schedule() for alarms, kapsula.storage for state — and your page behaves like a native app. See the gallery for ready examples.Single-file pages work best: the sandbox blocks requests to outside servers for now, and browser storage (localStorage) doesn't persist — use kapsula.storage. Up to 16 pending alarms per project. Free plan: one project of your own plus the built-in demo.