Skip to main content
There is no app store listing to install from. You get your install onto a phone in one of two ways: as a Progressive Web App (no build step required) or as a native app built with Capacitor. Both routes require your backend to be reachable from the phone — which the default 127.0.0.1 address is not.
The default backend address (127.0.0.1) is not reachable from a phone. On a mobile device, 127.0.0.1 refers to the phone itself, not your server. If you build or open the app without changing this, it will install successfully, open, and then fail to sign in with no obvious explanation. Before building for a phone, set PUBLIC_HOST before running ./install.sh, or update CONVEX_CLOUD_ORIGIN, CONVEX_SITE_ORIGIN, and APP_URL in selfhost/.env and re-run the installer. A LAN address like http://192.168.1.10:3210 is enough for testing on the same network; for everyday use you want TLS and a real hostname.
The Progressive Web App route requires no build toolchain and no IDE. Open your install in the phone’s browser and add it to the home screen:
  • iOS (Safari): tap the Share button, then choose Add to Home Screen
  • Android (Chrome): tap the menu, then choose Install app
Once installed, the app runs fullscreen and caches content for offline use. Updates are applied automatically the next time you reload.Requirements for the PWA install prompt to appear:
  • Your install must be served over HTTPS on a real hostname. Browsers only offer the install option under those conditions.
  • 127.0.0.1 or a plain LAN IP will not trigger the prompt on iOS. Android Chrome is more permissive on local networks, but HTTPS is still required for service worker caching to work properly.
If you just want to test on a phone on your local network, a LAN address with a self-signed certificate is enough to get the PWA install prompt on most Android devices. iOS requires a certificate that the device trusts.