annotate mrjunejune/PWA_SETUP.md @ 214:4c725fde6999

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