Skip to content

Enhance PWA support with icons, manifest, and service worker#37

Merged
Barata-Ribeiro merged 16 commits into
mainfrom
change-pwa-impl
Jul 23, 2026
Merged

Enhance PWA support with icons, manifest, and service worker#37
Barata-Ribeiro merged 16 commits into
mainfrom
change-pwa-impl

Conversation

@Barata-Ribeiro

Copy link
Copy Markdown
Owner

This pull request migrates the app's Progressive Web App (PWA) implementation from Workbox and vite-plugin-pwa to the Serwist library for service worker generation and registration. It also refactors how PWA metadata and service worker registration are handled in the codebase, and cleans up related dependencies and configuration.

Migration to Serwist for PWA support:

  • Service Worker Implementation and Registration:

    • Replaces the previous Workbox-based service worker (vite-plugin-pwa, workbox-*) with a new implementation using Serwist, including a new app/sw.ts file that configures runtime caching strategies for navigation and images. ([app/sw.tsR1-R46](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-8701c7015634957e3ea713dc64f6ef2a2eb0fb73a112927f578543dab2096ea9R1-R46))
    • Adds a new SwRegister React component to handle service worker registration, replacing the prior PWABadge component and removing its UI and logic. ([[1]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-e15008eea66d3653e8d8f5e3d41002ea15d5522e7384f3611365443166408bedR1-R94), [[2]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-ad25ca7ae4726d1951d886e40f376aefec5d323ced93307a8f38c23ac440b87dL1-L86), [[3]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-4bac017a0c91c7b1da193d9642c4a9810df6f5afc3c939dfe93f2e777d99f1a3L4-R4), [[4]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-4bac017a0c91c7b1da193d9642c4a9810df6f5afc3c939dfe93f2e777d99f1a3L40-R40))
  • Build and Dependency Updates:

    • Updates vite.config.ts to use the Serwist Vite plugin for service worker generation and removes all Workbox and vite-plugin-pwa configuration and dependencies. ([[1]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-6a3b01ba97829c9566ef2d8dc466ffcffb4bdac08706d3d6319e42e0aa6890ddR2-L5), [[2]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-6a3b01ba97829c9566ef2d8dc466ffcffb4bdac08706d3d6319e42e0aa6890ddL21-L164), [[3]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519R60-R61), [[4]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519R75-R81))
    • Adds Serwist-related packages to package.json and removes obsolete PWA-related dependencies. ([[1]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519R60-R61), [[2]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519R75-R81))

PWA Metadata and Manifest:

  • Manifest and Metadata Handling:
    • Moves PWA manifest and icon link tags into a new PwaMetadata component, which is rendered in the app's root layout, and adds a new public/manifest.json file for the web app manifest. ([[1]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-5a95750f81ae7556b08ad02cfbfc2269d7b0a4e38f935bddf14fcc29bae2879bR1-R38), [[2]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-4133eb55408b25b35b8e07c696a9dfc97b741c555d7407e8c86d0845e5eecc28R6), [[3]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-4133eb55408b25b35b8e07c696a9dfc97b741c555d7407e8c86d0845e5eecc28L35-R37), [[4]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-639916bc14c3f311c31f629a2ec116292a4b2f64d06b3607b9ddd2e495703895R1-R24))

Other:

  • Adds a placeholder Chrome DevTools config file in .well-known for completeness. ([public/.well-known/appspecific/com.chrome.devtools.jsonR1](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-5a4bdca01f732c6cfe38a7c88f2c350cb3c1067a4b9eaf2fca18e394b74faab7R1))

Summary of the most important changes:

PWA Migration (Serwist):

  • Replaces Workbox and vite-plugin-pwa with Serwist for service worker generation and registration, including new caching strategies in app/sw.ts. ([[1]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-8701c7015634957e3ea713dc64f6ef2a2eb0fb73a112927f578543dab2096ea9R1-R46), [[2]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-6a3b01ba97829c9566ef2d8dc466ffcffb4bdac08706d3d6319e42e0aa6890ddR2-L5), [[3]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-6a3b01ba97829c9566ef2d8dc466ffcffb4bdac08706d3d6319e42e0aa6890ddL21-L164))
  • Adds the SwRegister component for service worker registration and removes the old PWABadge UI and logic. ([[1]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-e15008eea66d3653e8d8f5e3d41002ea15d5522e7384f3611365443166408bedR1-R94), [[2]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-ad25ca7ae4726d1951d886e40f376aefec5d323ced93307a8f38c23ac440b87dL1-L86), [[3]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-4bac017a0c91c7b1da193d9642c4a9810df6f5afc3c939dfe93f2e777d99f1a3L4-R4), [[4]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-4bac017a0c91c7b1da193d9642c4a9810df6f5afc3c939dfe93f2e777d99f1a3L40-R40))

Build and Dependency Cleanup:

  • Updates vite.config.ts to use the Serwist plugin and removes all Workbox and vite-plugin-pwa configuration. Updates dependencies in package.json accordingly. ([[1]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-6a3b01ba97829c9566ef2d8dc466ffcffb4bdac08706d3d6319e42e0aa6890ddR2-L5), [[2]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-6a3b01ba97829c9566ef2d8dc466ffcffb4bdac08706d3d6319e42e0aa6890ddL21-L164), [[3]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519R60-R61), [[4]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-7ae45ad102eab3b6d7e7896acd08c427a9b25b346470d7bc6507b6481575d519R75-R81))

PWA Manifest and Metadata:

  • Moves manifest and icon links into a new PwaMetadata component and adds a new public/manifest.json file. ([[1]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-5a95750f81ae7556b08ad02cfbfc2269d7b0a4e38f935bddf14fcc29bae2879bR1-R38), [[2]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-4133eb55408b25b35b8e07c696a9dfc97b741c555d7407e8c86d0845e5eecc28R6), [[3]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-4133eb55408b25b35b8e07c696a9dfc97b741c555d7407e8c86d0845e5eecc28L35-R37), [[4]](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-639916bc14c3f311c31f629a2ec116292a4b2f64d06b3607b9ddd2e495703895R1-R24))

Miscellaneous:

  • Adds a placeholder Chrome DevTools config file in .well-known. ([public/.well-known/appspecific/com.chrome.devtools.jsonR1](https://github.com/Barata-Ribeiro/utilities_webapp/pull/37/files#diff-5a4bdca01f732c6cfe38a7c88f2c350cb3c1067a4b9eaf2fca18e394b74faab7R1))

@Barata-Ribeiro Barata-Ribeiro self-assigned this Jul 22, 2026
@Barata-Ribeiro Barata-Ribeiro added bug Something isn't working enhancement New feature or request chore Handle config, moving etc. labels Jul 22, 2026
@vercel

vercel Bot commented Jul 22, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
utilities-webapp Ignored Ignored Jul 22, 2026 5:04pm

@Barata-Ribeiro
Barata-Ribeiro merged commit d9096ed into main Jul 23, 2026
3 checks passed
@Barata-Ribeiro
Barata-Ribeiro deleted the change-pwa-impl branch July 23, 2026 09:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working chore Handle config, moving etc. enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant