Mercurial
comparison mrjunejune/PWA_SETUP.md @ 209:3b47e82ac57e
[MrJuneJune] PWA updates.
| author | MrJuneJune <me@mrjunejune.com> |
|---|---|
| date | Sun, 15 Feb 2026 15:43:26 -0800 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 208:5d3e116dd745 | 209:3b47e82ac57e |
|---|---|
| 1 # PWA Setup Guide | |
| 2 | |
| 3 Your site is now configured as a Progressive Web App! 🎉 | |
| 4 | |
| 5 ## What's Been Added | |
| 6 | |
| 7 1. **manifest.json** - App configuration | |
| 8 2. **sw.js** - Service worker for caching and offline support | |
| 9 3. **pwa-register.js** - Service worker registration | |
| 10 4. **offline.html** - Offline fallback page | |
| 11 5. **Updated base_head.html** - Links to manifest and PWA script | |
| 12 | |
| 13 ## Missing: App Icons | |
| 14 | |
| 15 You need to create PNG icons from your SVG. Run these commands: | |
| 16 | |
| 17 ### Using ImageMagick (recommended): | |
| 18 | |
| 19 ```bash | |
| 20 cd src/public | |
| 21 | |
| 22 # 192x192 icon | |
| 23 convert epi_all_colors.svg -resize 192x192 -background none icon-192.png | |
| 24 | |
| 25 # 512x512 icon | |
| 26 convert epi_all_colors.svg -resize 512x512 -background none icon-512.png | |
| 27 | |
| 28 # Maskable icon (512x512 with safe zone) | |
| 29 convert epi_all_colors.svg -resize 409x409 -background none -gravity center -extent 512x512 icon-maskable-512.png | |
| 30 ``` | |
| 31 | |
| 32 ### Or using Inkscape: | |
| 33 | |
| 34 ```bash | |
| 35 inkscape epi_all_colors.svg --export-type=png --export-filename=icon-192.png -w 192 -h 192 | |
| 36 inkscape epi_all_colors.svg --export-type=png --export-filename=icon-512.png -w 512 -h 512 | |
| 37 inkscape epi_all_colors.svg --export-type=png --export-filename=icon-maskable-512.png -w 512 -h 512 | |
| 38 ``` | |
| 39 | |
| 40 ### Or use an online tool: | |
| 41 - https://realfavicongenerator.net/ | |
| 42 - https://www.pwabuilder.com/ | |
| 43 | |
| 44 ## Optional: Screenshots (for better app install experience) | |
| 45 | |
| 46 Create screenshots of your site: | |
| 47 | |
| 48 ```bash | |
| 49 # Mobile screenshot (540x720) | |
| 50 screenshot-mobile.png | |
| 51 | |
| 52 # Desktop screenshot (1280x720) | |
| 53 screenshot-desktop.png | |
| 54 ``` | |
| 55 | |
| 56 You can use browser DevTools to capture these, or remove the `screenshots` section from manifest.json if you don't want them. | |
| 57 | |
| 58 ## Testing Your PWA | |
| 59 | |
| 60 1. **Serve over HTTPS** - PWAs require HTTPS (localhost works for testing) | |
| 61 2. **Open Chrome DevTools** → Application tab → Manifest | |
| 62 3. **Check Service Worker** → Application tab → Service Workers | |
| 63 4. **Lighthouse Audit** → Run PWA audit to see score | |
| 64 | |
| 65 ## Install Prompt | |
| 66 | |
| 67 When users visit your site, they'll see an "Install App" button in the bottom-right corner for 10 seconds. They can: | |
| 68 - Click it to install immediately | |
| 69 - Use browser menu: "Install MrJuneJune" or "Add to Home Screen" | |
| 70 | |
| 71 ## Features | |
| 72 | |
| 73 ✅ **Offline Support** - Caches pages, CSS, JS, fonts, images | |
| 74 ✅ **App Shortcuts** - Quick access to Blog and Notes | |
| 75 ✅ **Install Prompt** - Automatic install button | |
| 76 ✅ **Auto-updates** - Service worker updates on reload | |
| 77 ✅ **Fast Loading** - Cached resources load instantly | |
| 78 | |
| 79 ## Customization | |
| 80 | |
| 81 Edit `manifest.json` to change: | |
| 82 - `theme_color` - App theme color | |
| 83 - `background_color` - Splash screen color | |
| 84 - `display` - `standalone`, `fullscreen`, `minimal-ui`, or `browser` | |
| 85 - `shortcuts` - App shortcut menu items | |
| 86 | |
| 87 Edit `sw.js` to change: | |
| 88 - `CACHE_VERSION` - Increment to force cache refresh | |
| 89 - `STATIC_CACHE` - Files to cache immediately | |
| 90 - Caching strategy (currently: cache-first with network fallback) | |
| 91 | |
| 92 ## Testing on Mobile | |
| 93 | |
| 94 ### Android: | |
| 95 1. Open Chrome | |
| 96 2. Visit your site | |
| 97 3. Tap menu → "Install app" or "Add to Home Screen" | |
| 98 | |
| 99 ### iOS (Safari): | |
| 100 1. Open Safari | |
| 101 2. Tap Share button | |
| 102 3. Tap "Add to Home Screen" | |
| 103 | |
| 104 Note: iOS has limited PWA support (no install prompt, limited background features) | |
| 105 | |
| 106 ## Debugging | |
| 107 | |
| 108 Check console for: | |
| 109 - `[PWA]` - Registration events | |
| 110 - `[SW]` - Service worker caching events | |
| 111 | |
| 112 Clear cache: | |
| 113 ```js | |
| 114 navigator.serviceWorker.controller.postMessage({ type: 'CLEAR_CACHE' }); | |
| 115 ``` | |
| 116 | |
| 117 ## Next Steps | |
| 118 | |
| 119 1. Generate the PNG icons (see commands above) | |
| 120 2. Test on HTTPS | |
| 121 3. Run Lighthouse audit | |
| 122 4. Deploy and test on mobile device | |
| 123 5. Consider adding: | |
| 124 - Push notifications | |
| 125 - Background sync | |
| 126 - Share target API |