WP Manifestindependent plugin directory
manifest / performance / mmtr-wp-pwa

BB PWA

WordPress plugin to turn any site into an installable PWA - offline mode, install landing page, admin UI, zero dependencies.

by BusinessBloom · github.com/tolvajsanyi/mmtr-wp-pwa · website

0stars
0forks

Install

No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:

wp plugin install https://github.com/tolvajsanyi/mmtr-wp-pwa/archive/refs/heads/main.zip

Turn any WordPress site into an installable Progressive Web App — with offline mode, a device-aware install landing page, and full admin configuration. No theme edits required.

Features

  • Web App Manifest – auto-generated /manifest.json served via WP rewrite rules, no physical file needed
  • Service Worker – auto-generated /sw.js with configurable caching strategy
  • Offline mode – cache-first for static assets, network-first for HTML pages, with fallback to a custom offline page
  • Network Only exceptions – per-URL-prefix exclusions (booking systems, checkout, REST APIs) configured from the admin
  • Install landing page – device-aware page (custom slug, e.g. /app/) for QR code campaigns: native install prompt on Android, step-by-step guide on iOS Safari
  • Admin UI – app name, short name, description, start URL, theme color, background color, icons via WP Media Library
  • Smart cache invalidation – SW version bumps only when relevant settings change, not on every save
  • Cache size limit – FIFO trim keeps the cache under 50 entries to prevent storage bloat
  • Rewrite auto-flush – rules update automatically when the install page slug or status changes
  • iOS meta tagsapple-mobile-web-app-* and apple-touch-icon injected into <head> automatically
  • Zero dependencies – no Workbox, no npm, no build step

Installation

  1. Download or clone the repo
  2. Copy the bb-pwa folder to /wp-content/plugins/
  3. Activate the plugin in the WordPress admin

Important: After activation, go to Settings → Permalinks and hit Save to flush rewrite rules. Otherwise /manifest.json and /sw.js will return 404.

Usage

Settings

WordPress Admin → Settings → BB PWA

App identity

Set the app name (shown at install time), short name (shown under the icon on the home screen, max 12 characters), and start URL (the page that opens when the user taps the icon — e.g. /booking/).

Upload icons via the WP Media Library. Two sizes are required:

  • 192×192 px PNG – home screen icon
  • 512×512 px PNG – splash screen and app store listing

Offline mode

Enable Offline mode to activate caching. When enabled:

  • Static assets (CSS, JS, fonts, images) are served cache-first
  • HTML pages are served network-first with a cache fallback
  • If the user is offline and the page isn't cached, they see the configured offline fallback page

Create a simple "No internet connection" WP page and select it as the fallback.

Network Only exceptions

List URL prefixes that should never be served from cache — one per line. Use this for booking systems, checkout pages, or any real-time data endpoint. Example:

/booking/
/wp-json/amelia/
/checkout/

These paths always require a live network connection. If the user is offline, the browser's default error is shown.

Install landing page

Enable the Install page and set a slug (default: app). This generates a device-aware page at yourdomain.com/app/:

  • Android / Chrome – displays the native beforeinstallprompt install button
  • iOS Safari – displays a 4-step guide (Share → Add to Home Screen)
  • Other browsers – displays a generic message

Point your QR code at this URL. Print it, put it on the desk, done.

Theme color

Sets the browser chrome color on mobile (the status bar area). Also used as the button color on the install landing page with automatic contrast detection.

Compatibility

  • Booking systems: Amelia, Bookly, SimplyBook (iframe-free integrations)
  • WooCommerce (add /checkout/ and /cart/ to Network Only exceptions)
  • Any WordPress theme
  • Apache and Nginx (Cloudflare Tunnel compatible)

Requirements

  • WordPress 6.0+
  • PHP 7.4+

Changelog

1.1.1

  • Fix: add_option_ hook added so SW version bumps correctly on first save (previously only update_option_ was hooked)
  • Fix: trailing newline added to source file

1.1.0

  • Feature: description field added to admin and manifest output
  • Feature: Smart SW version bumping — only triggers on relevant setting changes
  • Feature: Rewrite rules auto-flush on slug/status change only
  • Feature: Cache size limiter (FIFO, max 50 entries) to prevent storage bloat

1.0.0

  • Initial release

© 2026 Business Bloom Consulting®

Support

For questions or issues, open a GitHub Issue.