Send web push notifications from Ruby on Rails

Web push on Ruby on Rails works through the same InstantPWA snippet you add for install prompts — placed in app/views/layouts/application.html.erb via application.html.erb <head>. Once a visitor opts in, you can send push notifications from your InstantPWA dashboard to anyone who granted permission, including installed home-screen users on iOS 16.4+.

Steps

  1. 1

    Open app/views/layouts/application.html.erb

    Go to application.html.erb <head>.

  2. 2

    Paste the InstantPWA snippet

    Drop the one-line async script tag in the Ruby on Rails head section — no build step or dependency install.

  3. 3

    Enable push in your dashboard

    Turn on Web Push in InstantPWA settings and upload your notification icon and default badge.

  4. 4

    Publish and collect opt-ins

    Once live on Ruby on Rails, the popup asks for notification permission after install (or standalone, if you enable prompt-first push).

  5. 5

    Send a test push

    Send a test notification from the dashboard to your own opted-in browser before sending to all subscribers.

Constraints to know

  • Turbo Drive keeps the <head> element persistent across page-to-page navigation, so the snippet initializes once per session rather than re-running on every Turbo visit — this is a feature, not a bug, but means you should test with a full page load first.
  • The script tag doesn't need to be pinned in config/importmap.rb since it's a plain external <script>, not an ES module import.

FAQ

Does web push work without the visitor installing the app?+

On Chromium browsers and desktop, yes. On iOS Safari, push requires the visitor to add the site to their home screen first (iOS 16.4+).

Can I segment who receives a push?+

Yes — the InstantPWA dashboard supports targeting by page visited, device type and custom events you send from your site.

Is there anything Ruby on Rails-specific I need to configure for push?+

No — push registration is handled entirely by the InstantPWA snippet once it's live on Ruby on Rails; there's no separate push API key to manage.

Ready to set this up on Ruby on Rails?

1,000 free impressions. No credit card.

Get started