One install, every platform

Shoal runs in modern browsers everywhere — iPhone, Android, Windows, macOS, Linux, ChromeOS — and installs to the home screen with a single tap. Once installed, it looks and behaves like a native app: full screen, app icon, push notifications, splash screen.

What you get

  • Offline support. A service worker caches the app shell so opening Shoal is instant, even on a flaky connection.
  • Push notifications. Standards-based Web Push, with VAPID, end-to-end. We send the encrypted payload — your device decrypts it on arrival.
  • Background sync. Messages sent while offline queue up and dispatch when you’re back online.
  • No app store gatekeeping. Install directly from the browser. Updates are instant and automatic.

Why we didn’t go native first

Going native means writing the same app three or four times — once for iOS, once for Android, once for the web — and dealing with three or four sets of release infrastructure. For a small team, that’s a lot of effort that doesn’t go into product.

PWAs in 2026 are good enough that the trade-off pays off: one codebase, fast to iterate, available everywhere within minutes of being built. We may add native shells later for App Store presence — but the web app will always be the canonical Shoal.