Send web push notifications from Laravel

Web push on Laravel works through the same InstantPWA snippet you add for install prompts — placed in resources/views/layouts/app.blade.php via Blade layout <head>, alongside @vite or @mix directives. 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 resources/views/layouts/app.blade.php

    Go to Blade layout <head>, alongside @vite or @mix directives.

  2. 2

    Paste the InstantPWA snippet

    Drop the one-line async script tag in the Laravel 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 Laravel, 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

  • If you set a Content-Security-Policy header via middleware (common in Laravel Sanctum/Fortify starter kits), you must allow-list the InstantPWA script domain or it will be blocked.
  • Run php artisan view:clear after editing the layout in environments where Blade view caching is enabled, or the change won't appear until the cache naturally expires.

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 Laravel-specific I need to configure for push?+

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

Ready to set this up on Laravel?

1,000 free impressions. No credit card.

Get started