Add web app manifest with icons and theme configuration
Add service worker with cache-first strategy for static assets
Add useServiceWorker hook for SW registration
Add PWA meta tags and Apple-specific tags to index.html
Update vite.config.ts for optimal asset caching
I decided not to use any npm packages such as vite-plugin-pwa or others because, with the recent attacks on packages, I thought it would be better to have control, also because it is a feature that needs few additions and can always be improved.
Tips
This actually works only if web app is served under https with valid certificate like let's encrypt ones.
# Overview
_Short summary of what this PR does_
- [x] Added: PWA Feture.
# Changes Made
- Add web app manifest with icons and theme configuration
- Add service worker with cache-first strategy for static assets
- Add useServiceWorker hook for SW registration
- Add PWA meta tags and Apple-specific tags to index.html
- Update vite.config.ts for optimal asset caching
I decided not to use any npm packages such as vite-plugin-pwa or others because, with the recent attacks on packages, I thought it would be better to have control, also because it is a feature that needs few additions and can always be improved.
## Tips
This actually works only if web app is served under https with valid certificate like let's encrypt ones.
# Screenshots / Demos
### Without PWA
https://github.com/user-attachments/assets/05079d86-ce26-4df5-94b2-ad580a2b8f99
### With PWA
https://github.com/user-attachments/assets/28bf1a2c-680a-492e-9062-6199e7476260
# Checklist
- [x] Code follows project style guidelines
- [x] Supports mobile and desktop UI/app (if applicable)
- [x] I have read [Contributing.md](https://github.com/Termix-SSH/Termix/blob/main/CONTRIBUTING.md)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Overview
Short summary of what this PR does
Changes Made
I decided not to use any npm packages such as vite-plugin-pwa or others because, with the recent attacks on packages, I thought it would be better to have control, also because it is a feature that needs few additions and can always be improved.
Tips
This actually works only if web app is served under https with valid certificate like let's encrypt ones.
Screenshots / Demos
Without PWA
https://github.com/user-attachments/assets/05079d86-ce26-4df5-94b2-ad580a2b8f99
With PWA
https://github.com/user-attachments/assets/28bf1a2c-680a-492e-9062-6199e7476260
Checklist
Oh, we are so grateful to you. We will audit this PR request as soon as possible.
LGTM. I dont know much about PWA's so thanks for doing it for me!