Works with
One snippet. Every browser, builder and framework.
InstantPWA is a single async script — under 15 KB gzipped, zero dependencies. It works everywhere HTML does. Pick your stack for a step-by-step guide.
Browsers
Google Chrome
Full install prompt + web push on desktop and Android.
Safari
iOS 16.4+ web push and Add-to-Home-Screen guidance.
Firefox
Install on Android; desktop shows a friendly bookmark card.
Microsoft Edge
Full Chromium-based install + web push on Windows and macOS.
Brave
Chromium engine, so the install popup and push all work.
Samsung Internet
Popular on Galaxy devices — full install and push support.
Opera
Chromium-based Opera supports install and web push.
Platforms
iOS
iPhone and iPad installs with web push on iOS 16.4+.
Android
One-tap install and rich web push on every Android browser.
Windows
Real Start-menu entries, taskbar pinning and jump lists.
macOS
Dock icons, standalone windows and Safari 17 web push.
ChromeOS
Deep OS integration — shelf pinning, file handlers, share targets.
Website builders
WordPress
Paste the snippet into your theme header — no plugin required.
Shopify
Install popup for storefronts — recover carts with web push.
Webflow
Add via Site Settings → Custom Code — no exporting needed.
Wix
Add via Wix Custom Code (Business/VIP plan or higher).
Squarespace
Paste into Code Injection → Header. Works on any paid plan.
Framer
Framer sites accept custom <head> code — paste and publish.
Ghost
Ghost publications install via Code Injection → Site Header.
Bubble
Paste into Settings → SEO/metatags → Script/meta tags in header.
Carrd
Pro plan Embed element loads the InstantPWA snippet.
Code & frameworks
HTML / plain JavaScript
One <script> tag before </body>. That's the whole install.
React
Drop into index.html — no components to import, no hooks to wire.
Next.js
Load once from the App Router root layout or _document.tsx.
Vue
Add to index.html once — no plugin, no directive, no wiring.
Nuxt
Wire once via useHead() or nuxt.config head[]. Works on SSR.
Svelte / SvelteKit
Add to app.html — one line, no store, no action, no directive.
Astro
Astro layouts accept the snippet directly — zero JS overhead.
Remix
Add to root.tsx via a <Scripts /> sibling — SSR-safe.
Angular
Paste into src/index.html — works alongside @angular/service-worker.