Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PWA Bundle

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.

FrankenPHP Friendly Worker Mode

This bundle is FrankenPHP worker mode friendly.

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, route names or URL paths)
  • Install prompt modesbanner, flash (inline), or modal; dismiss remind / never-ask-again options
  • Override-friendly Twig templates with install/offline blocks, bundled pwa.css tokens, 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.

About

Turn any Symfony application into a Progressive Web App with a fully configurable manifest, service worker, offline page, and install prompt.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages