Demfilz PWA makes your WordPress site a compliant Progressive Web App the moment you activate it. It serves a web app manifest and a service worker from your site root, generates the icon sizes browsers require, adds an offline page in your colours, and offers visitors an “Install” banner so they can add your site to their home screen or desktop.
In plain terms: visitors can add your site to their home screen like an app. Pages they have already seen keep opening when they lose signal, and everything else shows a friendly offline page instead of a browser error.
What you get
[dpwa_install_button], plus a data-dpwa-install attribute or a dpwa-install CSS class (handy for menu items) for your own buttons.Compatible with WooCommerce (cart, checkout and account pages are recognised automatically), page builders (edit modes are excluded from caching) and the common caching and minifying plugins (the front-end script is excluded from combine and minify bundles).
Requirements
Your site must be served over HTTPS for browsers to register the service worker and offer installation (localhost and 127.0.0.1 are exempt for testing). Your theme must be mobile-friendly, which every modern theme is; the Status panel checks this for you.
Developer hooks
dpwa_manifest – filter the manifest array.dpwa_service_worker_config – filter the worker configuration (bypass and no-store patterns, cache limits, precache list).dpwa_bypass_patterns and dpwa_no_store_patterns – adjust the URL fragments the worker leaves alone or never stores.dpwa_script_config – filter the front-end configuration (banner, strings).dpwa_should_output – switch the manifest link, meta tags and script off for a request.window.dpwa.canInstall(), window.dpwa.promptInstall(), window.dpwa.showBanner(); events dpwa:installable, dpwa:installed and dpwa:dismissed on document, plus matching dataLayer pushes when a dataLayer exists.This plugin does not connect to any external service and sends no data anywhere. The service worker stores copies of pages, scripts, styles, images and fonts in the visitor’s own browser cache, subject to the limits on the settings screen. If your theme already loads Google Fonts, the worker keeps those font files in the same browser cache so they render offline; it never requests them itself. The install banner remembers the visit count, dismissal time and installed state in the visitor’s browser storage (localStorage) so it does not nag. No cookies are set.