This plugin turns your WordPress or WooCommerce site into a progressive web app: an app people can install on their phone from the browser, with your icon on their home screen, your splash screen when it opens, pages that still load when the signal drops, and web push notifications that bring them back.
You get the three things a
WordPress PWA Plugin is made of, all configurable from one menu. A web app manifest, so browsers offer to install your site. A service worker, so visited pages stay readable offline. And web push notifications through Firebase Cloud Messaging, so you can reach people on Android, Windows, macOS and iOS after they leave.
Push notifications without a monthly bill
Most push notification plugins are the front end of a paid service. You connect an account, and once you pass a few thousand subscribers you start paying every month to message people who already opted in on your site. Your list lives on their servers.
This one works differently. You create a free Firebase project, paste three values into the settings, and notifications go out from your own project. There is no subscriber limit, no per message price and no trial period. The subscriber list sits in your own database tables, on your own server, and you can export or delete it whenever you want.
Quick links
Turn your website into an installable app
Visitors get an install prompt on Android and desktop Chrome, and Add to Home Screen on iOS. Once installed, your site opens in its own window with no browser bar, its own app icon and its own splash screen.
- Full web app manifest control: name, short name, theme and background colour, display mode, orientation, scope, start URL, description and categories.
- Upload your own app icon set, including a maskable icon so Android does not crop your logo into a circle.
- Store screenshots for the richer, app store style install dialog Chrome shows when both a wide and a narrow screenshot are supplied.
- iOS splash screens, so the installed app does not open on a blank white screen, plus an iOS status bar style.
- An install banner with your own title, message, button label and colours, plus a [ddwppwa_install_button] shortcode for putting an install button in a page, post or widget.
- Optional campaign parameters on the start URL, so app launches can be told apart from ordinary visits in your analytics.
Offline browsing with a service worker
A service worker caches the pages people visit, so a dropped signal on a train or in a lift does not end the visit.
- Network first caching. A visitor with a connection always sees your current content, and the cache is only reached for when the network is not there.
- Set how long a cached page stays usable.
- Point the offline fallback at any page you have written, or use the built in offline screen.
- Keep pages out of the cache with a never cache list. Your cart, checkout and account pages are filled in for you, because a cached cart is a support ticket.
Web push notifications on Android, desktop and iOS
Notifications are delivered by Firebase Cloud Messaging using your own project, so there is no cap on subscribers and no per message pricing from us.
- Write a push notification with a title, message, image and click URL, then send it to everyone who subscribed.
- Send a quick push straight from any post with the Send Push box in the editor.
- Send a push automatically when you publish a new post, with a per post switch for the ones that should stay quiet, and placeholders for the title, URL, excerpt and site name.
- Welcome new subscribers with a one time notification.
- Style the permission prompt with your own wording and colours, delay it by a number of seconds or page views, and exclude the pages where asking would be rude.
- A Test Notification button, so you find out your setup is wrong before your subscribers do.
- A [ddwppwa_subscribe_button] shortcode for asking permission from inside your content.
See who subscribed and what you sent
- A dashboard with total installs, active installs, subscribers and notifications sent.
- An app readiness score out of 100, worked out from the same checks as the Status tab, with whatever is holding it back listed underneath.
- Charts for app performance over time, notifications sent, notifications by type and which browsers your visitors are on.
- A Delivery Log with a row for every push: type, status, how many devices it reached, and the reason when a send fails.
- A Subscribers screen listing every known device with its platform, browser, status, signed in user, when it was installed and when it was last seen.
- A setup checklist, and a Status tab that checks HTTPS, OpenSSL, your generated files, your icons and your Firebase credentials, then shows what each browser lets your app do.
Works with AMP, multisite, WPML and WooCommerce
- AMP. On an AMP page no script is enqueued, so the page stays valid and keeps its AMP cache listing. The manifest and the app meta tags are valid AMP and are still added, so the page is still installable. Works with the official AMP plugin and with AMP for WP.
- Multisite. Every site in the network gets its own manifest, its own settings and its own subscriber list. Nothing is shared between them.
- WPML and Polylang. The app name, short name, description, install banner and permission prompt are registered for translation under the DevDiggers PWA string group, and the manifest is served in the language the visitor is reading, so a French visitor installs an app named in French.
- WooCommerce. HPOS compatible, and the cart, checkout and account pages are kept out of the offline cache by default.
Turn off what you do not need
The installable app, offline support, push notifications and analytics tracking each have their own switch, at the top of the tab where that feature is configured. Switching one off unregisters its hooks completely, which also makes it the quickest way to find out whether another plugin is conflicting.
Free vs Pro
Everything above is in this free plugin, with no subscriber cap, no sending fees and no trial period.
DevDiggers PWA Pro adds:
- Click tracking and click through rate. See how many people opened each notification, per send and across the site, with an engagement chart on the dashboard.
- Audience targeting. Send to logged in users, guests, installed app users or WooCommerce customers instead of everyone.
- Scheduled sends. Pick a future date and time and the notification sends itself.
- Action buttons and badges. Up to two buttons on a notification, each opening its own URL, plus a badge icon for the Android status bar.
- WooCommerce push notifications. New product and on sale pushes, back in stock alerts for the shoppers who asked, order status updates to the buyer's own devices, and abandoned cart reminders.
- Recurring digest. A daily or weekly broadcast on the day and time you choose.
- App shortcuts and a QR code. Quick links in the menu that opens when someone long presses your app icon, plus a printable QR code for the app start URL.
- Cache first strategy. Serve the stored copy of a page immediately for a noticeably faster repeat visit. Free is always network first.
- App Experience. A bottom tab bar built from a WordPress menu, pull to refresh, page transitions, a loading bar, a dark mode toggle, the device share sheet, haptic feedback, a screen wake lock and saved form entries.
- Android app for the Play Store. Store readiness checks, the packaging file for PWABuilder or Bubblewrap, and the asset links file served from your own site so the installed app opens with no browser bar. You keep your own signing key. The iOS project is generated the same way.
- Send when back online. A comment or contact form submitted with no signal is queued on the device and sent as soon as the connection returns, instead of being lost to a browser error page.
- Save for offline. A button that keeps a page on the device for reading later, listed in the browser's own downloads area.
- Upload the devdiggers-pwa folder to /wp-content/plugins/, or install the zip from Plugins > Add New.
- Activate the plugin through the Plugins menu.
- Open the Progressive Web App menu and run the Setup Wizard.
- For push notifications, create a free Firebase project, then paste the Firebase config, the VAPID key and the service account JSON into Configuration > Push Setup.
Push notifications and offline browsing need a secure context, so serve your site over HTTPS. Localhost is fine while you are developing. The plugin warns you in the admin if it is not.