WordPress plugin · Progressive Web App · Free

Demfilz PWA

Your WordPress site as an app. Visitors add it to their home screen like any other app, pages they have seen keep opening when the signal drops, and everything else shows a friendly offline page in your colours instead of a browser error. Activate it and the site is installable straight away; brand it from one settings screen.

v1.0.1 · WordPress 5.6+ · PHP 7.2+ · WooCommerce aware · free

Manifest, service worker and offline page, served from your site root App icons generated from any image, maskable variants included Never caches logged-in, cart or checkout pages

Installable the moment you activate it

Activate the plugin and your site already meets the installability rules browsers apply: a web app manifest with name, short name, colours, display mode and 192 and 512 pixel icons, a service worker registered for the whole site, and an offline page. All three are served through WordPress at your site root, so nothing is written to the document root, no .htaccess changes are made, and managed hosts are fine. The Status panel on Settings → PWA checks each piece from your browser, including what anonymous visitors actually receive, and Site Health reports PWA readiness.

Offline that behaves

Pages are always fetched from the network first, so visitors see fresh content whenever they are online. Pages they have opened are kept so they still open when the connection drops, and a list of pages you choose is stored in advance. Anything unseen shows the offline page, in your theme and background colours, with Retry and Home buttons and a list of what is available offline. Private pages are never stored: anything WordPress or WooCommerce marks as personal (logged-in pages, the cart, checkout and account pages), search results, previews, admin, REST and AJAX requests stay out of the cache, and the worker never touches form submissions.

Icons without the fiddling

Pick any image from your media library and the plugin generates the 512, 192 and 180 pixel sizes plus the maskable variants Android uses, padding non-square logos on your background colour. No image yet? The Site Icon from Settings → General is used, with maskable variants of its own, and failing that a neutral placeholder keeps the site installable until you choose one.

Install banner, buttons and store packaging

A dismissible install banner appears after the number of page views you choose and stays quiet for a snooze period once declined; iPhone and iPad visitors get Add to Home Screen instructions since Safari has no install prompt. Put an install button anywhere with the [dpwa_install_button] shortcode, a data-dpwa-install attribute or a dpwa-install menu class. Manifest screenshots, categories and shortcuts give Chrome its richer install dialog and let PWABuilder package the site for Google Play and the Microsoft Store.

See it

From activation to home screen

Four screens from the plugin, captured on a standard WordPress site.

The Status panel on Settings, PWA with every check passing: secure origin, manifest, icons, service worker, offline page, home page tags, anonymous visitors and registration
The Status panel: eight checks run from your browser, all green on a ready site.
The App and Appearance settings: app name, short name, description, the icon picker with a preview, screenshots, categories and colours
App identity and appearance: name, short name, icon picker, screenshots, categories and colours.
The install banner on a phone: the app icon, Install Demfilz, a short line of text and Install and Not now buttons
The install banner on a phone, with the icon and name from your settings.
The offline page on a phone: the app icon, You are offline, Retry and Go to the home page buttons and a list of pages available offline
The offline page in the site's colours, listing the pages that still open.

Coding standards

Passes the WordPress Coding Standards with zero errors and zero warnings, and clean against the official Plugin Check. Nonce and capability checks on every save, sanitised input, escaped output, and five independent review passes before release, including two security audits.

Private by design

No external services and no tracking. Everything the worker keeps lives in the visitor's own browser, personal pages never enter it, and the virtual endpoints are never indexed or page-cached.

Light on the page

One small script and one stylesheet, loaded in the footer and kept out of minifier bundles so an update never serves stale. The worker script is cached for a minute so the browser's update checks do not boot WordPress on every page view.

How it works

An installable site in five minutes

1

Install and activate

Install it from Plugins, Add New by searching for Demfilz PWA (or upload the zip) and activate. The manifest, service worker and offline page are live immediately with your site title and Site Icon.

2

Check the Status panel

Open Settings → PWA. Eight checks run in your browser and tell you if anything is missing, usually only HTTPS on a staging site.

3

Brand the app

Set the app name and short name, choose an icon from the media library, pick the theme and background colours and save. Icons are generated and a new app version is published.

4

Tune the banner and offline behaviour

Decide after how many page views the install banner appears, add pages to store in advance, and list anything the worker should leave alone.

Read the full setup guide →
The App settings section with the icon picker and generated icon preview

Why it matters. A home-screen icon is a return visit you do not have to earn twice, and a page that still opens on a train or in a basement is the difference between a sale and a bounce. The web can do this now; the plugin just does the setup properly.

Download

Get Demfilz PWA

Free, and ready to install today.

Demfilz PWA v1.0.1

Free · WordPress 5.6+ · PHP 7.2+ · WooCommerce aware · on the official WordPress.org plugin directory

Get it on WordPress.org

Direct download (.zip) →  ·  Setup guide →

Install it from your WordPress dashboard under Plugins → Add New by searching for "Demfilz PWA", or upload the zip, activate, then open Settings → PWA.

FAQs

Common questions

Does my site need HTTPS?

Yes. Browsers only register service workers and offer installation on secure origins, so on a plain http site the manifest and meta tags still appear but nothing installs. The Status panel on the settings screen and the Site Health test both tell you. Localhost and 127.0.0.1 are exempt, which is handy for testing.

Will logged-in users or WooCommerce customers see cached pages?

Personal pages are never stored. Responses that WordPress or WooCommerce mark as private or no-cache (every page served to a logged-in user, the cart, checkout and account pages) never enter the cache, and neither do search results, previews or anything under wp-admin. Form submissions and other non-GET requests are never handled by the worker at all. Public pages are fetched from the network first; the stored public copy is only used when the network fails or takes longer than the timeout you set.

Why does the install banner not appear?

The banner only shows when the browser reports that the site is installable: HTTPS, the manifest, the icons and a registered service worker. Only Chrome, Edge and Samsung Internet report that, and only after the visitor has tapped or clicked something on the page. Safari on iPhone and iPad has no install prompt, so those visitors get Add to Home Screen instructions instead, and Firefox never prompts. The banner also waits for the number of page views and the delay you set, hides once the app is installed, and stays hidden for the snooze period after Not now.

Which image should I use for the icon?

A square PNG or JPEG of at least 512 x 512 pixels with your logo filling most of the canvas. The plugin generates the 512, 192 and 180 pixel sizes and the maskable variants, padding non-square images on your background colour. If you do not choose one, the Site Icon from Settings, General is used, and failing that a neutral placeholder, so the site is installable straight away.

Where are the manifest and the service worker served from?

From your site root through WordPress: /dpwa-manifest.webmanifest, /dpwa-sw and /dpwa-offline. No files are written to your document root and no .htaccess changes are made, so it works on managed hosts. With plain permalinks the plugin switches to query string URLs automatically. The worker URL has no .js extension on purpose: some nginx setups return 404 for missing static files instead of passing the request to WordPress.

Does the plugin send data anywhere?

No. There are no external services, no tracking and no outbound calls. The service worker keeps copies of pages, scripts, styles, images and fonts in the visitor's own browser cache, within the limits you set, and the install banner remembers its visit count and snooze in the visitor's browser storage. No cookies are set.

Is it on WordPress.org, and where do I get it?

Yes - it is published on the official WordPress.org plugin directory: install it from your WordPress dashboard under Plugins → Add New by searching for "Demfilz PWA". A direct download is also available from this page.

Want the app to do more?

Push notifications, a store-packaged Android app, offline order capture for field staff - this is the kind of thing we build. Tell us what your site needs and we will come back with a plan and a fixed quote.