Send web push notifications from Next.js

Web push on Next.js works through the same InstantPWA snippet you add for install prompts — placed in app/layout.tsx or pages/_document.tsx via root layout via next/script with strategy="afterInteractive". 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/layout.tsx or pages/_document.tsx

    Go to root layout via next/script with strategy="afterInteractive".

  2. 2

    Paste the InstantPWA snippet

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

  • App Router and Pages Router both work, but the script must be a Client Component boundary (next/script) — plain <script> tags inside a Server Component layout get stripped by React's hydration diffing.
  • On Vercel Edge Middleware or strict CSP setups, add the InstantPWA domain to script-src or the snippet will be blocked silently.

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

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

Ready to set this up on Next.js?

1,000 free impressions. No credit card.

Get started