PHPackages                             cecil/theme-pwa - 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. [Templating &amp; Views](/categories/templating)
4. /
5. cecil/theme-pwa

ActiveCecil-theme[Templating &amp; Views](/categories/templating)

cecil/theme-pwa
===============

Cecil component theme PWA

2.20.0(10mo ago)09.4k↓50%3MITTwig

Since Nov 14Pushed 7mo agoCompare

[ Source](https://github.com/Cecilapp/theme-pwa)[ Packagist](https://packagist.org/packages/cecil/theme-pwa)[ GitHub Sponsors](https://github.com/ArnaudLigny)[ Fund](https://opencollective.com/cecil)[ RSS](/packages/cecil-theme-pwa/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (10)Dependencies (1)Versions (123)Used By (3)

PWA component theme
===================

[](#pwa-component-theme)

The *PWA* component theme for [Cecil](https://cecil.app) provides helpers to implement a [Web manifest](https://developer.mozilla.org/docs/Web/Manifest) and a [service worker](https://developer.mozilla.org/docs/Web/API/Service_Worker_API) to turn a website into a [Progressive Web App](https://web.dev/explore/progressive-web-apps).

Features
--------

[](#features)

- Generated and configurable **Web manifest**
- Generated and configurable **service worker**
- **Automatic caching** of visited resources
- **No dependencies**, vanilla JavaScript
- **Precaching** of assets and published pages
- **Offline support** and image placeholder
- Custom **install button** support instead of browser prompt

Prerequisites
-------------

[](#prerequisites)

- A [Cecil](https://cecil.app) website
- A [supported browser](https://caniuse.com/serviceworkers)
- HTTPS

Installation
------------

[](#installation)

```
composer require cecil/theme-pwa
```

> Or [download the latest archive](https://github.com/Cecilapp/theme-pwa/releases/latest/) and uncompress its content in `themes/pwa`.

Usage
-----

[](#usage)

Add `pwa` in the `theme` section of the `config.yml`:

```
theme:
  - pwa
```

Add the following line in the HTML `` of the main template:

```
{{ include('partials/pwa.html.twig', {site}, with_context = false) }}
```

### Web manifest

[](#web-manifest)

Configure [web manifest](https://developer.mozilla.org/docs/Web/Manifest) options:

```
manifest:
  background_color: '#FFFFFF'
  theme_color: '#202020'
  icons:
    - icon-192x192.png
    - icon-512x512.png
    - src: icon-192x192-maskable.png
      purpose: maskable
    - src: icon-512x512-maskable.png
      purpose: maskable
```

Note

You can specify a dark theme color with `theme_color_dark` option.
The `icons` section is optional. If not provided, the theme will generate a default set of icons based on the `icon.png` file in the *assets* directory of your website.

Tip

Create your own [maskable icons](https://web.dev/articles/maskable-icon) with [Maskable.app](https://maskable.app/editor).

#### Web manifest Optional

[](#web-manifest-optional)

Add [shortcuts](https://developer.mozilla.org/docs/Web/Manifest/shortcuts) from the `main` menu entries:

```
manifest:
  shortcuts: true
```

Provide [installer screenshots](https://developer.mozilla.org/docs/Web/Manifest/screenshots):

```
manifest:
  screenshots:
    - screenshots/desktop.png
    - screenshots/mobile.png
```

### Service worker

[](#service-worker)

Enable the service worker:

```
serviceworker:
  enabled: true
```

#### Service worker Optional

[](#service-worker-optional)

Disable browser install prompt, and use custom install button:

```
serviceworker:
  install:
    prompt: false
    button: '#install-button' # query selector
```

```
Install App
```

Icons are precached by default. To disable this behavior:

```
serviceworker:
  install:
    precache:
      icons: false
```

By default all published pages are precached. To limit this number:

```
serviceworker:
  install:
    precache:
      pages:
        limit: 10
```

Set list of precached assets:

```
serviceworker:
  install:
    precache:
      assets:
        - logo.png
```

Display a snackbar on update and connection lost:

```
serviceworker:
  update:
    snackbar: true
  offline:
    snackbar: true
```

Define ignored paths:

```
serviceworker:
  ignore:
    - name: 'cms'
      path: '/admin'
```

Do not precache a specific page (through its front matter):

```
---
serviceworker:
  precache: false
---
```

###  Health Score

47

—

FairBetter than 93% of packages

Maintenance58

Moderate activity, may be stable

Popularity24

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity79

Established project with proven stability

 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 ~20 days

Recently: every ~4 days

Total

122

Last Release

323d ago

Major Versions

1.19.0 → 2.0.02023-12-09

### Community

Maintainers

![](https://www.gravatar.com/avatar/52a734f97ce4ef72fb07b59e5d0f7f6a26a0b322da49b881bedc3896c5e7f128?d=identicon)[aligny](/maintainers/aligny)

---

Top Contributors

[![ArnaudLigny](https://avatars.githubusercontent.com/u/80580?v=4)](https://github.com/ArnaudLigny "ArnaudLigny (196 commits)")

---

Tags

cecilcecil-theme-componentpwaservice-workerthemececilpwaservice worker

### Embed Badge

![Health badge](/badges/cecil-theme-pwa/health.svg)

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

###  Alternatives

[almasaeed2010/adminlte

AdminLTE - admin control panel and dashboard that's based on Bootstrap 4

45.5k8.8M145](/packages/almasaeed2010-adminlte)[bk2k/bootstrap-package

Bootstrap Package delivers a full configured frontend theme for TYPO3, based on the Bootstrap CSS Framework.

354939.0k93](/packages/bk2k-bootstrap-package)[silverstripe-themes/simple

The SilverStripe simple theme (default SilverStripe 3 theme)

411.3M8](/packages/silverstripe-themes-simple)[tales-from-a-dev/flowbite-bundle

A Symfony form theme for Flowbite

88281.5k2](/packages/tales-from-a-dev-flowbite-bundle)[andreia/filament-nord-theme

A minimalist Arctic Nord theme for FilamentPHP

13640.5k2](/packages/andreia-filament-nord-theme)[openplain/filament-shadcn-theme

Shadcn UI theme for Filament - Beautiful color themes with the iconic Shadcn design system

5040.5k9](/packages/openplain-filament-shadcn-theme)

PHPackages © 2026

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