Skip to content
Learn · Channels & deliverability

Web push and in-app messaging

Web push notifications reach a user's device or browser even when they are off your site, after an explicit opt-in, while in-app messages appear only while the user is active inside your product. Different reach, different consent, and different jobs to be done.

Updated 10 Jun 20266 min readBy fromHello
Key takeaways
  • Web push works off-site through the browser Push API, a service worker, and a granted Notifications permission.
  • In-app messages need no separate opt-in but only reach users who are currently active in your product.
  • On iOS, web push requires the site installed to the Home Screen on Safari 16.4 or later.
  • Push is for pulling people back; in-app is for guiding people who are already here.

The short version

These two channels look similar because both render small messages in your product, but they sit on opposite sides of two lines: reach and consent. Web push leaves your site and lands on the device after the user grants a browser permission. In-app messaging stays inside an active session and needs no separate permission. Treat them as two tools, not one.

How web push works

Web push relies on three browser pieces working together: a service worker (a background script the browser keeps running), the Push API (which subscribes the browser to a push service and receives messages), and the Notifications API (which renders the system notification). The user must explicitly click Allow on the browser permission prompt; until they do, you cannot send anything. After opt-in you get a subscription endpoint and encryption keys, and your server sends through the browser's push service even when the tab is closed. Because the message arrives off-site, web push is the re-engagement channel of the group — closer in job to SMS or email than to anything that lives inside your app. The catch: it is bounded by browser and OS support, and the user can revoke the permission at any time.

Reach versus consent. In-app messages stay on-site and need no opt-in. Web push and email both reach off-site and require consent; web push is highlighted as the in-product opt-in channel that follows the user out to the device.

The iOS caveat

On iPhone and iPad, web push does not work for a plain Safari tab. Apple added web push only for web apps the user has added to the Home Screen, starting in Safari 16.4 (March 2023). The permission request must come in response to a direct tap — for example, a Subscribe button — not on page load. So on iOS your reachable audience is the subset of users who installed your site as a web app and then granted permission. Plan for that gap rather than assuming parity with desktop.

How in-app messaging works

In-app messages render inside an active session — a banner, modal, slideout, or tooltip drawn by your product while the user is using it. There is no separate opt-in because the user is already in your product; the message is part of the experience. The trade-off is reach: in-app only touches people who are present right now. It cannot pull a lapsed user back, and a churned user will never see it.

When to use which

JobReach for
Bring a lapsed user backWeb push (or email / SMS)
Announce a feature to active usersIn-app banner or modal
Guide a first-time user through setupIn-app tooltip or slideout
Alert on a time-sensitive event off-siteWeb push
Prompt an upgrade mid-taskIn-app modal

The honest division: in-app handles the people already in the room, web push goes to find the ones who left. Most products use both, coordinated inside a customer journey so the same person does not get an in-app nudge and a push for the same thing within minutes of each other. Deciding which channel carries which message, in what order, without overlap is the move from running many channels to running them as one — the subject of multi-channel versus omnichannel. Standalone tools such as OneSignal or Novu specialize in push and notification delivery; an engagement platform folds push and in-app into the same journey logic as the rest of your channels.

FAQ

Common questions

  • Do web push and in-app messaging need the same opt-in?

    No. Web push requires an explicit browser permission — the user must click Allow on the Notifications prompt before you can send. In-app messages need no separate opt-in because they only appear while the user is already active inside your product.

  • Does web push work on iPhone?

    Only under conditions. Apple supports web push on iOS and iPadOS just for web apps added to the Home Screen, on Safari 16.4 or later, and the permission request must follow a direct tap. A plain Safari tab cannot receive web push.

  • Can in-app messages reach users who left my product?

    No. In-app messages are session-bound; they only render while the user is active in your app. To reach someone who is off-site you need web push, email, or SMS — channels that leave your product and land on the device.

  • Is web push reliable enough to depend on?

    It depends. Delivery is bounded by browser and OS support, the user must have opted in, and the permission can be revoked at any time. Treat the subscriber list as perishable and keep a second channel for anything critical.

See the platform the team runs.

Related guides
Early access

Put your growth teamon autopilot.

Early access opens Q3 2026, gradually, so the team tunes to real use cases. Small teams with big ambitions go first.

Not ready to share an email? It's open source. Run it yourself today. View on GitHub

No spam. One email when your spot opens. Unsubscribe at any time.