PHPackages                             disjfa/pwa-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. disjfa/pwa-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

disjfa/pwa-bundle
=================

Pwa bundle for symfony, can also be use in glynn-admin-symfony. Create favicons and startup icons

0.2.0(2y ago)4221[1 issues](https://github.com/disjfa/pwa-bundle/issues)1MITPHPCI failing

Since Nov 29Pushed 2y ago1 watchersCompare

[ Source](https://github.com/disjfa/pwa-bundle)[ Packagist](https://packagist.org/packages/disjfa/pwa-bundle)[ RSS](/packages/disjfa-pwa-bundle/feed)WikiDiscussions master Synced yesterday

READMEChangelogDependencies (4)Versions (5)Used By (1)

Pwa bundle
==========

[](#pwa-bundle)

Add favicons, startup icons, launcher icons and a manifest.json to your website. To check out how to set it up see [glynn-admin-symfony4](https://github.com/disjfa/glynn-admin-symfony4)

Instalation
-----------

[](#instalation)

```
composer req disjfa/pwa-bundle

```

Configuration
-------------

[](#configuration)

Setup the PWA\_PUBLIC\_PATH in your .env file. See the api unsplash api on details how to get these.

For the initial setup i have setup an icons in the public folder named `pwa-icon.png`. For a simple setup copy the icon from the bundle public folder to check it out.

```
cp vendor/disjfa/pwa-bundle/Resources/public/pwa-icon.png public/

```

Usage
-----

[](#usage)

In your header you can include the meta file

```
{{ include('@DisjfaPwa/meta.html.twig') }}
```

Manual setup
------------

[](#manual-setup)

This is an example using symfony 4, for symfony 3 add the routes to the `router.yml` and add the settings to the `config.yml`.

Add routes in the router (`config/routes/disjfa_pwa.yaml`)

```
disjfa_pwa:
    resource: '@DisjfaPwaBundle/Controller/'
    type:     annotation

```

Settings, (`config/packages/disjfa_pwa.yaml`)

```
parameters:
    disjfa_pwa.favicon: /pwa-icon.png
    disjfa_pwa.background_color: '#000000'
    disjfa_pwa.theme_color: '#ecf0f1'
    disjfa_pwa.name: 'App name'
    disjfa_pwa.short_name: 'App name'
    disjfa_pwa.start_url: '/?start'
    disjfa_pwa.display: 'standalone'

liip_imagine:
    filter_sets:
        pwa_16x16:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [16, 16]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [16, 16]
                    position: center
                    color: '#aaa'
        pwa_32x32:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [32, 32]
                    mode: inset
                background:
                    size: [32, 32]
                    position: center
                    color: '#aaa'
        pwa_36x36:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [36, 36]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [36, 36]
                    position: center
                    color: '#aaa'
        pwa_48x48:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [48, 48]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [48, 48]
                    position: center
                    color: '#aaa'
        pwa_57x57:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [57, 57]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [57, 57]
                    position: center
                    color: '#aaa'
        pwa_60x60:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [60, 60]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [60, 60]
                    position: center
                    color: '#aaa'
        pwa_72x72:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [72, 72]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [72, 72]
                    position: center
                    color: '#aaa'
        pwa_76x76:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [76, 76]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [76, 76]
                    position: center
                    color: '#aaa'
        pwa_96x96:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [96, 96]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [96, 96]
                    position: center
                    color: '#aaa'
        pwa_114x114:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [114, 114]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [114, 114]
                    position: center
                    color: '#aaa'
        pwa_120x120:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [120, 120]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [120, 120]
                    position: center
                    color: '#aaa'
        pwa_128x128:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [128, 128]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [128, 128]
                    position: center
                    color: '#aaa'
        pwa_144x144:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [144, 144]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [144, 144]
                    position: center
                    color: '#aaa'
        pwa_152x152:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [152, 152]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [152, 152]
                    position: center
                    color: '#aaa'
        pwa_180x180:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [180, 180]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [180, 180]
                    position: center
                    color: '#aaa'
        pwa_192x192:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [192, 192]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [192, 192]
                    position: center
                    color: '#aaa'
        pwa_256x256:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [256, 256]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [256, 256]
                    position: center
                    color: '#aaa'
        pwa_228x228:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [228, 228]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [228, 228]
                    position: center
                    color: '#aaa'
        pwa_384x384:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [384, 384]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [384, 384]
                    position: center
                    color: '#aaa'
        pwa_512x512:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [512, 512]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [512, 512]
                    position: center
                    color: '#aaa'
        pwa_1024x1024:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [1024, 1024]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [1024, 1024]
                    position: center
                    color: '#aaa'
        pwa_320x460:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [320, 460]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [320, 460]
                    position: center
                    color: '#aaa'
        pwa_640x920:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [640, 920]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [640, 920]
                    position: center
                    color: '#aaa'
        pwa_640x1096:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [640, 1096]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [640, 1096]
                    position: center
                    color: '#aaa'
        pwa_750x1294:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [750, 1294]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [750, 1294]
                    position: center
                    color: '#aaa'
        pwa_748x1024_landscape:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                rotate:
                    angle: 90
                thumbnail:
                    size: [748, 1024]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [748, 1024]
                    position: center
                    color: '#aaa'
        pwa_768x1004_portrait:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [768, 1004]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [768, 1004]
                    position: center
                    color: '#aaa'
        pwa_1182x2208_landscape:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                rotate:
                    angle: 90
                thumbnail:
                    size: [1182, 2208]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [1182, 2208]
                    position: center
                    color: '#aaa'
        pwa_1242x2148_landscape:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                rotate:
                    angle: 90
                thumbnail:
                    size: [1242, 2148]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [1242, 2148]
                    position: center
                    color: '#aaa'
        pwa_1242x2148_portrait:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [1242, 2148]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [1242, 2148]
                    position: center
                    color: '#aaa'
        pwa_1496x2048_landscape:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                rotate:
                    angle: 90
                thumbnail:
                    size: [1496, 2048]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [1496, 2048]
                    position: center
                    color: '#aaa'
        pwa_1536x2008_portrait:
            jpeg_quality: 85
            png_compression_level: 8
            filters:
                thumbnail:
                    size: [1536, 2008]
                    mode: inset
                    allow_upscale: true
                background:
                    size: [1536, 2008]
                    position: center
                    color: '#aaa'

```

###  Health Score

26

—

LowBetter than 43% of packages

Maintenance15

Infrequent updates — may be unmaintained

Popularity15

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~601 days

Total

4

Last Release

916d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ced1da7bfe2fdf0d358d50402c40234787c10d80ba491195882f30dfdcf45b15?d=identicon)[disjfa](/maintainers/disjfa)

---

Top Contributors

[![disjfa](https://avatars.githubusercontent.com/u/632778?v=4)](https://github.com/disjfa "disjfa (14 commits)")

---

Tags

pwa

### Embed Badge

![Health badge](/badges/disjfa-pwa-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/disjfa-pwa-bundle/health.svg)](https://phpackages.com/packages/disjfa-pwa-bundle)
```

###  Alternatives

[silviolleite/laravelpwa

Looks like an app, feels like an app, but NOT an app.

1.1k1.2M2](/packages/silviolleite-laravelpwa)[erag/laravel-pwa

A simple and easy-to-use PWA (Progressive Web App) package for Laravel applications.

16083.3k](/packages/erag-laravel-pwa)[internal/dload

Downloads binaries.

98142.7k10](/packages/internal-dload)[spomky-labs/pwa-bundle

Progressive Web App Manifest Generator Bundle for Symfony.

6144.4k1](/packages/spomky-labs-pwa-bundle)[symfony/ux-notify

Native notification integration for Symfony

1274.7k](/packages/symfony-ux-notify)[devrabiul/laravel-pwa-kit

Laravel PWA Kit is a lightweight and flexible package to add Progressive Web App (PWA) support to your Laravel applications with ease.

571.4k](/packages/devrabiul-laravel-pwa-kit)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
