limegreentangerine / web_app
Add standalone web app functionality to a website
Package info
github.com/limegreentangerine/WebAppKit
Type:concrete5-package
pkg:composer/limegreentangerine/web_app
Requires
- limegreentangerine/class_kit: ^1.0
- minishlink/web-push: ^10.0
Requires (Dev)
- php: ^8.4
- concrete5/core: ^9.2
- friendsofphp/php-cs-fixer: ^3.95
- phpstan/phpstan: ^2.2
- phpunit/phpunit: ^11
Suggests
None
Provides
None
Conflicts
None
Replaces
None
This package is auto-updated.
Last update: 2026-10-09 09:01:05 UTC
README
Add standalone web-app support and push notifications to a Concrete CMS site.
WebAppKit adds web-app settings and push-notification management pages to the Concrete CMS dashboard. Administrators can configure the site's web app manifest, icons, display mode, colours, iOS launch screens, push keys, and notification publishing. The package:
- Generates
site.webmanifestin the site's document root. - Adds a manifest link to rendered pages.
- Adds mobile web-app meta tags.
- Adds configured iOS startup-image links.
- Provides push subscription management and custom and scheduled notifications.
- Sends notifications when configured pages are published.
- Installs the web push service worker automatically when the package is installed or upgraded.
Requirements
- Concrete CMS 9.5.0 or later
- PHP 8.4 or later
- Composer
- The PHP
mbstringextension
Installation
Install as a Concrete CMS package
The package is also configured as a Composer package (limegreentangerine/web_app) and can be included in a project's Composer dependencies:
composer require limegreentangerine/web_app
After copying or installing the package, log in to Concrete CMS and go to Dashboard → Extend Concrete → Install. Select WebAppKit and install it.
The package registers the following dashboard pages:
/dashboard/web_app
/dashboard/push_notifications
The package uses the web_app handle and can be upgraded from the Concrete CMS package manager after updating its source files. It requires the class_kit package.
Configuration
Open Dashboard → Web App after installation to configure the manifest and app appearance.
- Enable Make this site web app capable.
- Enter the required Name.
- Optionally provide:
- Short name
- A comma-separated list of categories
- Description
- Display mode
- Theme colour
- Background colour
- Select the required iPhone thumbnail (PNG, 57 × 57 pixels).
- Select any additional application icons:
- 48 × 48
- 72 × 72
- 96 × 96
- 144 × 144
- 168 × 168
- 192 × 192
- 256 × 256
- 512 × 512
- Optionally select iOS launch-screen images for the supported device sizes.
- Save the settings.
Saving the settings writes site.webmanifest to the Concrete CMS document root. The manifest contains the configured name and optional metadata, colours, display mode, and selected icon files.
Available display modes are:
fullscreenstandaloneminimal-uibrowser
If the web-app feature is disabled, the package does not add the manifest or web-app headers to rendered pages. Push notifications are configured separately in the Push Notifications dashboard. If automatic service-worker installation fails, the package logs a warning and shows a dashboard warning; install it manually with ./vendor/bin/install-service-worker from the Concrete CMS project root. Uninstalling the package removes the generated site.webmanifest; uploaded files selected in the dashboard are not deleted.
Development
Clone the repository and install its development dependencies:
git clone https://github.com/limegreentangerine/web_app.git
cd web_app
composer install
Composer's post-install script installs the Node.js development dependencies from package.json. To install them separately:
npm install
Tests
Run the PHPUnit suite, including package metadata and service-worker installation checks, entity accessor and serialization tests, image size validation, command value tests, and push-response JSON decoding:
composer test
Generate a text coverage report:
composer test-coverage
Formatting
Format PHP and JavaScript files:
composer format
Check formatting without changing files:
composer format:check
Individual formatters can also be run with:
composer format:php composer format:php:check composer format:js composer format:js:check
Project structure
controller.php Package lifecycle, routes, and event hooks
controllers/single_page/dashboard/ Dashboard page controllers
single_pages/dashboard/ Dashboard page templates
src/ Push, web-app, entity, and search functionality
bin/install-service-worker Composer service-worker installation command
tests/ControllerTest.php PHPUnit controller tests
.github/workflows/ CI workflows
Continuous integration
GitHub Actions runs composer test for pull requests. Pushes run composer format:check and composer typecheck. Both workflows use PHP 8.4.
License
This project is licensed under the MIT License.