PHPackages                             edwinylil1/laravelwebapp - 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. edwinylil1/laravelwebapp

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

edwinylil1/laravelwebapp
========================

Designed to provide an experience similar to a mobile or desktop application.

1.0.0(2y ago)11161MITPHPPHP &gt;=7.2.5

Since Feb 19Pushed 2y ago2 watchersCompare

[ Source](https://github.com/J-E-L-E-Dev/laravelWebApp)[ Packagist](https://packagist.org/packages/edwinylil1/laravelwebapp)[ RSS](/packages/edwinylil1-laravelwebapp/feed)WikiDiscussions main Synced yesterday

READMEChangelogDependenciesVersions (2)Used By (0)

Laravel (WebApp) Web Application
================================

[](#laravel-webapp-web-application)

[![Laravel 7.x](https://camo.githubusercontent.com/cb1a5f73220a771a314c8172f22a24beab337002200ad62c5b2d38e7d4d525c3/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d372e782d7265642e737667)](https://laravel.com/docs/7.x)[![Laravel 8.x](https://camo.githubusercontent.com/ab3298aa7dabdd5c5225db3293c3e1940974373dfe1c60a3462ba53fc653edb8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d382e782d7265642e737667)](https://laravel.com/docs/8.x)[![Laravel 9.x](https://camo.githubusercontent.com/c532a0456d444f24d52d5182a7501148227886bb0556aa020fb0258224f937fb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d392e782d7265642e737667)](https://laravel.com/docs/9.x)[![Laravel 10.x](https://camo.githubusercontent.com/540748966581100bddf2fb60b744c38e16e00ec667c5f22dd6ae6554a3a41693/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31302e782d7265642e737667)](https://laravel.com/docs/10.x)[![Laravel 11.x](https://camo.githubusercontent.com/1cf7e76377e33c525ce7f5645f062caa61e32d7f2a143fa261c5cbce90820e67/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31312e782d7265642e737667)](https://laravel.com/docs/11.x)

[![Latest Stable Version](https://camo.githubusercontent.com/3432f6330870fe69f9d2147e42808fbfd2b4a0a64164caa1fe4e9dc5fb8cd578/687474703a2f2f706f7365722e707567782e6f72672f656477696e796c696c312f6c61726176656c7765626170702f76)](https://packagist.org/packages/edwinylil1/laravelwebapp)[![Total Downloads](https://camo.githubusercontent.com/f6e37b85c1d13744136f1c9b829f340e01b7532c5a583f1b95cad4f848abac48/687474703a2f2f706f7365722e707567782e6f72672f656477696e796c696c312f6c61726176656c7765626170702f646f776e6c6f616473)](https://packagist.org/packages/edwinylil1/laravelwebapp)[![License](https://camo.githubusercontent.com/d3e899056163685b02b435bb32461372f85f53f53b9bd3536a05c503e18195fe/687474703a2f2f706f7365722e707567782e6f72672f656477696e796c696c312f6c61726176656c7765626170702f6c6963656e7365)](https://packagist.org/packages/edwinylil1/laravelwebapp)

[![en](https://camo.githubusercontent.com/9687410941adb91c2f673c9d50ef38544f3e9a38a6b9f9367cac918a8d3e2a41/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c616e672d656e2d7265642e737667)](https://github.com/J-E-L-E-Dev/laravelWebApp)[![es](https://camo.githubusercontent.com/836476cfed52d44b1c1aab20b7c942af38e6f73421e52eba781ee89904ec919a/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c616e672d65732d79656c6c6f772e737667)](https://github.com/J-E-L-E-Dev/laravelWebApp/blob/main/README.es.md)

This Laravel package turns your website into a [web application](https://developers.google.com/web/progressive-web-apps). Accessing your site on a mobile or desktop device will prompt you to add the application to your home screen.

You will be able to see the launcher icon of your application from the home screen, and upon tapping it, your web application will be displayed. Therefore, it is crucial that your application provides all the navigation within the HTML (without relying on the browser's forward or backward buttons).

See too the [Laravel Web App Demo](https://github.com/J-E-L-E-Dev/laravelWebAppDemo)

Requirements
============

[](#requirements)

This type of web applications requires HTTPS to enable installation functionality unless they are served from localhost. If you are not yet using HTTPS on your site, please refer to [Let's Encrypt](https://letsencrypt.org) and [ZeroSSL](https://zerossl.com).

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

[](#installation)

We can add the dependency in our `composer.json` file:

```
"require": {
    "edwinylil1/laravelwebapp": "~1.0.0",
},
```

or execute

```
composer require edwinylil1/laravelwebapp --prefer-dist
```

### Publish

[](#publish)

We need to make the package files public in the application:

```
php artisan vendor:publish --provider="LaravelWebApp\Providers\LaravelWebAppServiceProvider"
```

### Configuration

[](#configuration)

You can configure the name, description, icons, presentations, and more of your application in the file created at in `config/laravelwebapp.php`.

Example of the file:

```
'manifest' => [
        'name' => env('APP_NAME_WA', 'My Web App'),
        'short_name' => env('APP_SN_WA', 'My Web App'),
        'description' => env('APP_DESCRIPTION_WA', 'Made with love by EVillegas'),
        'middleware' => ['web'],
        'start_url' => '/',
        'lang' => config('app.locale'),
        'background_color' => '#A1F188',
        'theme_color' => '#69F78C',
        'display' => 'standalone',
        'orientation'=> 'any',
        'status_bar'=> 'black',
        'icons' => [
            '72x72' => [
                'path' => '/images/icons/icon-72x72.png',
                'purpose' => 'any'
            ], ...
        ],
        'splash' => [
            '640x1136' => '/images/icons/splash-640x1136.png',
            '750x1334' => '/images/icons/splash-750x1334.png',
            '828x1792' => '/images/icons/splash-828x1792.png', ...
        ],
        'shortcuts' => [
            [
                'name' => 'Shortcut Link 1',
                'description' => 'Shortcut Link 1 Description',
                'url' => '/',
                'icons' => [
                    "src" => "/images/icons/icon-72x72.png",
                    "purpose" => "any"
                ]
            ]
        ],
        'custom' => []
    ]
```

You can specify the size of each icon as key of the array or specify it:

```
[
    'path' => '/images/icons/icon-512x512.png',
    'sizes' => '512x512',
    'purpose' => 'any'
],

```

Note: in the `custom` tag, you can insert custom tags in `manifest.json` like this, for example:

```
...
'custom' => [
    'tag_name' => 'tag_value',
    'tag_name_2' => 'tag_value_2',
    ...
]
...
```

We need to add the package's Blade directive `@laravelWebApp` to our headers ``.

```

    @yield('title')
    ...
    @laravelWebApp

    ...
    My content
    ...

```

This should include the appropriate meta tags, the link to `manifest.json` and the serviceworker script.

If you view the code from your browser, it will look like this example:

```

    // Initialize the service worker
    if ('serviceWorker' in navigator) {
        navigator.serviceWorker.register('/serviceworker.js', {
            scope: '.'
        }).then(function (registration) {
            // Registration was successful
            console.log('Laravel WebApp: ServiceWorker registration successful with scope: ', registration.scope);
        }, function (err) {
            // registration failed :(
            console.log('Laravel WebApp: ServiceWorker registration failed: ', err);
        });
    }

```

Troubleshooting
===============

[](#troubleshooting)

While running the Laravel test server:

1. Verify that `/manifest.json` is being served
2. Verify that `/serviceworker.js` is being served
3. Use the Application tab in the Chrome Developer Tools to verify the web app is configured correctly.
4. Use the "Add to home screen" link on the Application Tab to verify you can add the app successfully.

The Service Worker
==================

[](#the-service-worker)

By default, the service worker implemented by this app is:

```
var staticCacheName = "webapp-v" + new Date().getTime();
var filesToCache = [
    '/offline',
    '/css/app.css',
    '/js/app.js',
    '/images/icons/icon-72x72.png',
    '/images/icons/icon-96x96.png',
    '/images/icons/icon-128x128.png',
    '/images/icons/icon-144x144.png',
    '/images/icons/icon-152x152.png',
    '/images/icons/icon-192x192.png',
    '/images/icons/icon-384x384.png',
    '/images/icons/icon-512x512.png',
    '/images/icons/splash-640x1136.png',
    '/images/icons/splash-750x1334.png',
    '/images/icons/splash-828x1792.png',
    '/images/icons/splash-1125x2436.png',
    '/images/icons/splash-1242x2208.png',
    '/images/icons/splash-1242x2688.png',
    '/images/icons/splash-1284x2778.png',
    '/images/icons/splash-1536x2048.png',
    '/images/icons/splash-1668x2224.png',
    '/images/icons/splash-1668x2388.png',
    '/images/icons/splash-2048x2732.png',
];

// Cache on install
self.addEventListener("install", event => {
    this.skipWaiting();
    event.waitUntil(
        caches.open(staticCacheName)
            .then(cache => {
                return cache.addAll(filesToCache);
            })
    )
});

// Clear cache on activate
self.addEventListener('activate', event => {
    event.waitUntil(
        caches.keys().then(cacheNames => {
            return Promise.all(
                cacheNames
                    .filter(cacheName => (cacheName.startsWith("webapp-")))
                    .filter(cacheName => (cacheName !== staticCacheName))
                    .map(cacheName => caches.delete(cacheName))
            );
        })
    );
});

// Serve from Cache
self.addEventListener("fetch", event => {
    event.respondWith(
        caches.match(event.request)
            .then(response => {
                return response || fetch(event.request);
            })
            .catch(() => {
                return caches.match('offline');
            })
    )
});
```

To customize service worker functionality, update the `public_path/serviceworker.js`.

The offline view
================

[](#the-offline-view)

By default, the offline view is implemented in `resources/views/vendor/laravelwebapp/offline.blade.php`

```
@extends('layouts.app')

@section('content')

    Connect to the internet to continue.

@endsection
```

To customize update this file.

Contributing
------------

[](#contributing)

Contributing is easy! Just fork the repo, make your changes then send a pull request on GitHub. If your PR is languishing in the queue and nothing seems to be happening, then send EVillegas an [email](mailto:devvillegas@proton.me).

Donations
---------

[](#donations)

#### by paypal: [Donate](https://www.paypal.com/donate/?hosted_button_id=6BYWC3V29GXLE)

[](#by-paypal-donate)

#### by Id Binance: 359233003

[](#by-id-binance-359233003)

###  Health Score

21

—

LowBetter than 18% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity37

Early-stage or recently created project

 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

Unknown

Total

1

Last Release

865d ago

### Community

Maintainers

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

---

Top Contributors

[![J-E-L-E-Dev](https://avatars.githubusercontent.com/u/84980112?v=4)](https://github.com/J-E-L-E-Dev "J-E-L-E-Dev (18 commits)")

---

Tags

phplaravelprogressive web appswebapp

### Embed Badge

![Health badge](/badges/edwinylil1-laravelwebapp/health.svg)

```
[![Health](https://phpackages.com/badges/edwinylil1-laravelwebapp/health.svg)](https://phpackages.com/packages/edwinylil1-laravelwebapp)
```

###  Alternatives

[silviolleite/laravelpwa

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

1.1k1.4M2](/packages/silviolleite-laravelpwa)[amranidev/laracombee

Recommendation system for laravel

11538.8k1](/packages/amranidev-laracombee)[yieldstudio/tailwind-merge-php

Merge Tailwind CSS classes without style conflicts

4975.4k1](/packages/yieldstudio-tailwind-merge-php)[wujunze/money-wrapper

MoneyPHP Wrapper

103.8k](/packages/wujunze-money-wrapper)

PHPackages © 2026

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