nowo-tech/pwa-bundle

Symfony bundle to turn any application into a fully configurable Progressive Web App (manifest, service worker, offline, install prompt)

Maintainers

Package info

github.com/nowo-tech/PwaBundle

Type:symfony-bundle

pkg:composer/nowo-tech/pwa-bundle

Transparency log

Fund package maintenance!

HecFranco

Statistics

Installs: 2

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v1.1.0 2026-07-05 15:02 UTC

This package is auto-updated.

Last update: 2026-07-05 17:23:29 UTC


README

CI codecov Packagist Version Packagist Downloads License PHP Symfony GitHub stars

Found this useful? Give it a star on GitHub so more developers can find it.

Turn any Symfony application into a Progressive Web App with a fully configurable manifest, service worker, offline page, and install prompt — no vendor lock-in, no hardcoded assets.

Features

  • Web App Manifest generated from nowo_pwa.yaml (name, icons, shortcuts, theme, display mode, scope, start URL)
  • Service worker with configurable cache strategy (network-first, cache-first, stale-while-revalidate), precache URLs, and offline fallback
  • Twig helpers nowo_pwa_head(), nowo_pwa_install_prompt(), and nowo_pwa_install_links() with route targeting (all / only / except)
  • Override-friendly Twig templates and translations (en, es, fr, it, pt, de, nl; REQ-TWIG-001 / REQ-I18N-001)
  • TypeScript client for SW registration and install banner (Vite build → pwa.js)
  • Works with Symfony 7.4+ and 8.x; no database required

Installation

composer require nowo-tech/pwa-bundle
# config/packages/nowo_pwa.yaml
nowo_pwa:
    manifest:
        name: 'My Application'
        short_name: MyApp
        theme_color: '#0f172a'
        icons:
            - { src: '/icons/icon-192.png', sizes: '192x192', type: image/png }
            - { src: '/icons/icon-512.png', sizes: '512x512', type: image/png }
    service_worker:
        precache_urls: ['/', '/offline']
        offline_url: '/offline'

In your base layout:

<head>
    {{ nowo_pwa_head() }}
</head>
<body>
    {% block body %}{% endblock %}
    {{ nowo_pwa_install_prompt() }}
    {{ nowo_pwa_install_links() }}
</body>

See Installation and Configuration.

Documentation

Additional documentation

Tests and coverage

make test
make test-ts
make test-coverage
make release-check   # includes demo healthcheck on port 8025

License

MIT — see LICENSE.