PHPackages                             erag/laravel-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. [Utility &amp; Helpers](/categories/utility)
4. /
5. erag/laravel-pwa

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

erag/laravel-pwa
================

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

v2.1.1(1mo ago)180124.1k↓28.9%19MITPHPPHP &gt;=8.0.0CI passing

Since Sep 19Pushed 1mo ago4 watchersCompare

[ Source](https://github.com/eramitgupta/laravel-pwa)[ Packagist](https://packagist.org/packages/erag/laravel-pwa)[ GitHub Sponsors](https://github.com/eramitgupta)[ RSS](/packages/erag-laravel-pwa/feed)WikiDiscussions main Synced 4d ago

READMEChangelog (10)Dependencies (8)Versions (16)Used By (0)

PWA Easy Setup for Laravel - Livewire, Vue.js &amp; React.js
============================================================

[](#pwa-easy-setup-for-laravel---livewire-vuejs--reactjs)

 [![Screenshot 2024-10-04 at 10 34 23 PM](https://private-user-images.githubusercontent.com/72160684/520385890-d28879ad-84ef-4886-b454-cf10e53cddd9.jpg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5MzI0OTIsIm5iZiI6MTc4MjkzMjE5MiwicGF0aCI6Ii83MjE2MDY4NC81MjAzODU4OTAtZDI4ODc5YWQtODRlZi00ODg2LWI0NTQtY2YxMGU1M2NkZGQ5LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDE4NTYzMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE0ZjUxMmM2NmZjM2Y2ODRmMzY3NGUzN2Y3YThlNzMzOWZlYjdhMTkxNjczN2FkN2JhNDMyY2VmZjI3YzRkMTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRmpwZWcifQ.RCSmSak1xYUIp1ErQJujeKM12tejboH4K3sfVpXSXIk)](https://private-user-images.githubusercontent.com/72160684/520385890-d28879ad-84ef-4886-b454-cf10e53cddd9.jpg?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5MzI0OTIsIm5iZiI6MTc4MjkzMjE5MiwicGF0aCI6Ii83MjE2MDY4NC81MjAzODU4OTAtZDI4ODc5YWQtODRlZi00ODg2LWI0NTQtY2YxMGU1M2NkZGQ5LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDE4NTYzMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE0ZjUxMmM2NmZjM2Y2ODRmMzY3NGUzN2Y3YThlNzMzOWZlYjdhMTkxNjczN2FkN2JhNDMyY2VmZjI3YzRkMTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRmpwZWcifQ.RCSmSak1xYUIp1ErQJujeKM12tejboH4K3sfVpXSXIk)[![Packagist License](https://camo.githubusercontent.com/e60623f508586f049d48cfb8396ee411b0c9bc3be174381a1893c37462a3c1e5/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e63652d4d49542d626c7565)](https://github.com/eramitgupta/laravel-pwa/blob/main/LICENSE)[![Latest Stable Version](https://camo.githubusercontent.com/6f34ee544b5fed858dbe5dff27dccb330782b03447a6c2f93d6d94cb799ad8df/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f657261672f6c61726176656c2d7077613f6c6162656c3d537461626c65)](https://packagist.org/packages/erag/laravel-pwa)[![Laravel Compatibility](https://camo.githubusercontent.com/1f38209407e68538834ef605a24d20e0bc112328f321ef8ecf439003abe0d61a/68747470733a2f2f62616467652e6c61726176656c2e636c6f75642f62616467652f657261672f6c61726176656c2d707761)](https://packagist.org/packages/erag/laravel-pwa)[![Total Downloads](https://camo.githubusercontent.com/2ac910b43874ae96da7fea97b62969e60a03600c2c184b5c9ab1a23cecdee6ea/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f657261672f6c61726176656c2d7077612e7376673f6c6162656c3d446f776e6c6f616473)](https://packagist.org/packages/erag/laravel-pwa)

Laravel PWA is a package designed to seamlessly integrate Progressive Web Application (PWA) functionality into your Laravel projects. With this package, you can easily configure, update the manifest, and register service workers, enabling any Laravel app to function as a PWA.

---

✨ Features 🚀
------------

[](#-features-)

- ⚙️ **Auto-generate** PWA manifest and service worker files
- 🧩 **Configurable "Add to Home Screen"** install prompt with one-click integration
- 🔄 **Supports Laravel versions** 8.x to 13.x out of the box
- ⚡ **Quick setup** with minimal configuration required
- 📱🖥️ **Fully responsive** — works on both mobile and desktop browsers
- 🛠️ **Customizable via `config/pwa.php`** — control icons, theme color, name, and more
- 🧑‍💻 **Blade directives included** for effortless frontend usage
- 🔐 **HTTPS ready** — ensures secure and reliable PWA experience
- 🌐 **Compatible with Blade, Livewire, Vue 3, and React**

---

Important ⚠️
------------

[](#important-️)

Note: PWAs require a secure HTTPS connection to work correctly. Ensure your application is hosted with HTTPS; otherwise, service workers and other PWA features will not function as expected.

Installation 📦
--------------

[](#installation-)

To get started, install the package using Composer:

```
composer require erag/laravel-pwa
```

Register the Service Provider
-----------------------------

[](#register-the-service-provider)

### For Laravel (Optional) v11.x, v12.x, v13.x

[](#for-laravel-optional-v11x-v12x-v13x)

Ensure the service provider is registered in your `/bootstrap/providers.php` file:

```
use EragLaravelPwa\EragLaravelPwaServiceProvider;

return [
    // ...
    EragLaravelPwaServiceProvider::class,
];
```

### For Laravel v8.x, v9.x, v10.x

[](#for-laravel-v8x-v9x-v10x)

Ensure the service provider is registered in your `config/app.php` file:

```
'providers' => [
    // ...
    EragLaravelPwa\EragLaravelPwaServiceProvider::class,
],
```

Once installed, publish the PWA configuration files using:

```
php artisan erag:install-pwa
```

This will create the required configuration file `config/pwa.php` and set up PWA functionality for your application.

Configuration ⚙️
----------------

[](#configuration-️)

### Main Configuration File: `config/pwa.php`

[](#main-configuration-file-configpwaphp)

This is your main configuration file where you can customize the PWA settings.

```
return [
    'install-button' => true, // Show or hide the install button globally.

    'manifest' => [
        'name' => 'Laravel PWA',
        'short_name' => 'LPT',
        'background_color' => '#6777ef',
        'display' => 'fullscreen',
        'description' => 'A Progressive Web Application setup for Laravel projects.',
        'theme_color' => '#6777ef',
        'icons' => [
            [
                'src' => 'logo.png',
                'sizes' => '512x512',
                'type' => 'image/png',
            ],
        ],
    ],

    'debug' => env('APP_DEBUG', false), // Show or hide console.log in the browser globally.

    'livewire-app' => false,
];
```

### Customizing Manifest File

[](#customizing-manifest-file)

After changing `config/pwa.php` in your `manifest` array, run this command You can update your PWA manifest file by running:

```
php artisan erag:update-manifest
```

### Logo Path

[](#logo-path)

The logo file name is fixed as `logo.png`, so it must exist at `public/logo.png`.

Usage 🛠️
--------

[](#usage-️)

To integrate PWA functionality into your layouts, use the provided Blade directives.

### 1. **Add Meta Tags**

[](#1-add-meta-tags)

Place the `@PwaHead` directive inside the `` tag of your main layout file:

```

    @PwaHead
    Your App Title

```

### 2. **Register Service Worker**

[](#2-register-service-worker)

Just before the closing `` tag in your main layout file, add:

```
    @RegisterServiceWorkerScript

```

These directives will automatically generate the necessary tags and JavaScript for the PWA.

Facade Usage 🎯
--------------

[](#facade-usage-)

You can easily update the manifest dynamically at runtime using the provided `PWA` Facade.

```
use EragLaravelPwa\Facades\PWA;

PWA::update([
    'name' => 'Laravel Apps',
    'short_name' => 'LA',
    'background_color' => '#6777ef',
    'display' => 'fullscreen',
    'description' => 'A Progressive Web Application setup for Laravel projects.',
    'theme_color' => '#6777ef',
    'icons' => [
        [
            'src' => 'logo.png',
            'sizes' => '512x512',
            'type' => 'image/png',
        ],
    ],
]);
```

- This will immediately update your `manifest.json` file in the public directory.
- You can call this from a controller, job, or anywhere inside your Laravel project where you need to update PWA settings dynamically.

✅ Make sure `public/` folder is writable to allow manifest updates!

This command updates the `manifest.json` file located in the public directory of your Laravel project.

Uploading a Logo via PWA 🌟
--------------------------

[](#uploading-a-logo-via-pwa-)

To update the PWA logo dynamically, follow these steps: Your Laravel PWA is now configured to update the logo dynamically! 🚀

#### 1. **Create a Controller Method**

[](#1-create-a-controller-method)

**Input Key Name:** `logo`

Make sure the image is in PNG format, at least 512x512 pixels, and does not exceed 1024 KB in size.

```

```

```
array:2 [▼ // EragLaravelPwa/src/Core/PWA.php:19
  "_token" => "iKbZh21VsYZMpNd9TN12Ul5SoysQzkMXlQkhB5Ub"
  "logo" => Illuminate\Http\UploadedFile{#1426 ▶}]
```

```
namespace App\Http\Controllers;

use EragLaravelPwa\Core\PWA;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;

class SettingsController extends Controller
{
    public function uploadLogo(Request $request)
    {
        $response = PWA::processLogo($request);

        if ($response['status']) {
            return redirect()->back()->with('success', $response['message']);
        }

        return redirect()->back()->withErrors($response['errors'] ?? ['Something went wrong.']);
    }
}
```

Once uploaded, the new logo will be available at `http://yourdomain.com/logo.png`.

Screenshots 📸
-------------

[](#screenshots-)

[![Screenshot 2024-09-19 at 10 11 01 PM](https://private-user-images.githubusercontent.com/72160684/369091668-27c08862-0557-4fbd-bd8f-90b9d05f67b3.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5MzI0OTIsIm5iZiI6MTc4MjkzMjE5MiwicGF0aCI6Ii83MjE2MDY4NC8zNjkwOTE2NjgtMjdjMDg4NjItMDU1Ny00ZmJkLWJkOGYtOTBiOWQwNWY2N2IzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDE4NTYzMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRkYzllOTAyNmU0YjQwN2Y5NjA4Y2RmNDAxMzI5ZGNhOGE0ZGMyNzhlNmU1YjgzZjcxMjM2NjcyZTcyYzlkMzAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.Xf_je1P0p-x-8_YKbZmaQIfpOl-Xls5_O21givWeXFY)](https://private-user-images.githubusercontent.com/72160684/369091668-27c08862-0557-4fbd-bd8f-90b9d05f67b3.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5MzI0OTIsIm5iZiI6MTc4MjkzMjE5MiwicGF0aCI6Ii83MjE2MDY4NC8zNjkwOTE2NjgtMjdjMDg4NjItMDU1Ny00ZmJkLWJkOGYtOTBiOWQwNWY2N2IzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDE4NTYzMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRkYzllOTAyNmU0YjQwN2Y5NjA4Y2RmNDAxMzI5ZGNhOGE0ZGMyNzhlNmU1YjgzZjcxMjM2NjcyZTcyYzlkMzAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.Xf_je1P0p-x-8_YKbZmaQIfpOl-Xls5_O21givWeXFY)### Installing PWA App

[](#installing-pwa-app)

[![Screenshot 2024-09-19 at 10 13 23 PM](https://private-user-images.githubusercontent.com/72160684/369092461-5e58a596-3267-42d9-98d5-c48b0f54d3ed.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5MzI0OTIsIm5iZiI6MTc4MjkzMjE5MiwicGF0aCI6Ii83MjE2MDY4NC8zNjkwOTI0NjEtNWU1OGE1OTYtMzI2Ny00MmQ5LTk4ZDUtYzQ4YjBmNTRkM2VkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDE4NTYzMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM5YzdmN2VmMDQzZDg4ZGM2MmZhYzhmODU4ZjRlYWU4MzdlMTFiOGIzYWI3ZGQ1MjBjYWFkYmZmMGM4NTdkMmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.B5_bdyXOMMf-AvErUMF83R4ajS3t407K109j7jiI92s)](https://private-user-images.githubusercontent.com/72160684/369092461-5e58a596-3267-42d9-98d5-c48b0f54d3ed.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5MzI0OTIsIm5iZiI6MTc4MjkzMjE5MiwicGF0aCI6Ii83MjE2MDY4NC8zNjkwOTI0NjEtNWU1OGE1OTYtMzI2Ny00MmQ5LTk4ZDUtYzQ4YjBmNTRkM2VkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDE4NTYzMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM5YzdmN2VmMDQzZDg4ZGM2MmZhYzhmODU4ZjRlYWU4MzdlMTFiOGIzYWI3ZGQ1MjBjYWFkYmZmMGM4NTdkMmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.B5_bdyXOMMf-AvErUMF83R4ajS3t407K109j7jiI92s)### Offline Page

[](#offline-page)

[![Screenshot 2024-09-19 at 10 13 52 PM](https://private-user-images.githubusercontent.com/72160684/369092542-1a80465e-0307-43ac-a1bc-9bca2cf16f8d.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5MzI0OTIsIm5iZiI6MTc4MjkzMjE5MiwicGF0aCI6Ii83MjE2MDY4NC8zNjkwOTI1NDItMWE4MDQ2NWUtMDMwNy00M2FjLWExYmMtOWJjYTJjZjE2ZjhkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDE4NTYzMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJkZDNlMTgzNjJlODg2MWUxY2Q0ZTU2NTQ1NjZjOGZhNzk4NWNlNTYzZDNlMjE3NzQ1M2ExNDg3YmIyNzAzZDQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.UcTRjrOG1tRQKRse_ZapUZN32YK-3qPDqBlQ2pOnzAM)](https://private-user-images.githubusercontent.com/72160684/369092542-1a80465e-0307-43ac-a1bc-9bca2cf16f8d.png?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODI5MzI0OTIsIm5iZiI6MTc4MjkzMjE5MiwicGF0aCI6Ii83MjE2MDY4NC8zNjkwOTI1NDItMWE4MDQ2NWUtMDMwNy00M2FjLWExYmMtOWJjYTJjZjE2ZjhkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA3MDElMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNzAxVDE4NTYzMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTJkZDNlMTgzNjJlODg2MWUxY2Q0ZTU2NTQ1NjZjOGZhNzk4NWNlNTYzZDNlMjE3NzQ1M2ExNDg3YmIyNzAzZDQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRnBuZyJ9.UcTRjrOG1tRQKRse_ZapUZN32YK-3qPDqBlQ2pOnzAM)Contribution 🧑‍💻
----------------

[](#contribution-‍)

We appreciate your interest in contributing to this Laravel PWA project! Whether you're reporting issues, fixing bugs, or adding new features, your help is greatly appreciated.

### Forking and Cloning the Repository

[](#forking-and-cloning-the-repository)

1. Go to the repository page on GitHub.
2. Click the **Fork** button at the top-right corner of the repository page.
3. Clone your forked repository:

    ```
    git clone https://github.com/your-username/laravel-pwa.git
    ```

### Reporting Issues

[](#reporting-issues)

If you encounter any issues, please check if the issue already exists in the **Issues** section. If not, create a new issue with the following details:

- Steps to reproduce the issue
- Expected and actual behavior
- Laravel version
- Any relevant logs or screenshots

### Submit a Pull Request

[](#submit-a-pull-request)

When you're ready to contribute, open a pull request describing the changes you’ve made and how they improve the project. Please ensure:

- All commits are squashed into one clean commit.
- The code follows **PSR-12** standards.
- You’ve tested the changes locally.

### Coding Standards

[](#coding-standards)

- Follow the [PSR-12](https://www.php-fig.org/psr/psr-12/) PHP coding standards.
- Keep your commit history clean and meaningful.
- Add comments where needed but avoid over-commenting.

Example Workflow 🌟
------------------

[](#example-workflow-)

Here’s a simple example of how to use this package:

1. Install the package via Composer.
2. Publish the configuration files.
3. Add the `@PwaHead` directive in your layout file’s ``.
4. Add the `@RegisterServiceWorkerScript` directive before the closing `` tag.
5. Customize the `config/pwa.php` to fit your project’s needs.
6. Run `php artisan erag:update-manifest` to update the manifest file.
7. That's it! Your Laravel app is now PWA-enabled. 🚀

###  Health Score

57

—

FairBetter than 98% of packages

Maintenance94

Actively maintained with recent releases

Popularity51

Moderate usage in the ecosystem

Community16

Small or concentrated contributor base

Maturity52

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 98.5% 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 ~51 days

Recently: every ~89 days

Total

13

Last Release

32d ago

Major Versions

v1.9.0 → v2.0.02026-03-18

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/72160684?v=4)[Er Amit Gupta](/maintainers/eramitgupta)[@eramitgupta](https://github.com/eramitgupta)

---

Top Contributors

[![eramitgupta](https://avatars.githubusercontent.com/u/72160684?v=4)](https://github.com/eramitgupta "eramitgupta (67 commits)")[![andrefelipe18](https://avatars.githubusercontent.com/u/96439642?v=4)](https://github.com/andrefelipe18 "andrefelipe18 (1 commits)")

---

Tags

laravellaravel-applicationlaravel-frameworklaravel-pwapwapwa-apppwa-appsreactjsvuejswebapplaravellaravel-packageofflinepwamanifestservice workerProgressive Web Applaravel pwa

###  Code Quality

Code StyleLaravel Pint

### Embed Badge

![Health badge](/badges/erag-laravel-pwa/health.svg)

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

###  Alternatives

[psalm/plugin-laravel

Psalm plugin for Laravel

3355.3M346](/packages/psalm-plugin-laravel)[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.

561.6k](/packages/devrabiul-laravel-pwa-kit)[erag/laravel-lang-sync-inertia

A powerful Laravel package for syncing and managing language translations across backend and Inertia.js (Vue/React/Svelte) frontends, offering effortless localization, auto-sync features, and smooth multi-language support for modern Laravel applications.

4925.3k](/packages/erag-laravel-lang-sync-inertia)[alareqi/filament-pwa

A comprehensive PWA (Progressive Web App) plugin for Filament v3 and v4 admin panels with offline functionality, installation prompts, and icon generation.

145.7k](/packages/alareqi-filament-pwa)[codexshaper/laravel-pwa

Laravel Progressive Web App

153.0k](/packages/codexshaper-laravel-pwa)

PHPackages © 2026

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