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
Open resources/views/layouts/app.blade.php
Go to Blade layout <head>, alongside @vite or @mix directives.
- 2
Paste the InstantPWA snippet
Drop the one-line async script tag in the Laravel head section — no build step or dependency install.
- 3
Enable push in your dashboard
Turn on Web Push in InstantPWA settings and upload your notification icon and default badge.
- 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
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.