Goal
Make the flyer editor installable as a Progressive Web App so it can be launched from the home screen / app dock and run in a standalone window.
Why
The app is already local-first (Evolu/SQLite in the browser, syncs via mnemonic) — it behaves like an offline app but can't be installed like one. PWA support would give it an app icon, standalone chrome-less window, and reliable offline loading of the app shell.
Scope / notes
- Web app manifest — name, icons (multiple sizes + maskable),
display: standalone, theme_color/background_color matching the dim-studio chrome, start_url/scope under the /flyer-editor/ base.
- Service worker for the app shell — precache the built assets so the editor loads offline. Must coexist with the existing
coi-serviceworker (which injects COOP/COEP for SharedArrayBuffer). Care needed so two service workers don't conflict — likely fold the caching into a single SW, or ensure the COI worker keeps controlling the COOP/COEP path.
- Install affordance — optional
beforeinstallprompt handling / install button.
- Vite:
vite-plugin-pwa is the obvious tool, but verify it plays nicely with the hand-rolled coi-serviceworker and the /flyer-editor/ base path on GitHub Pages.
Open questions
- One combined service worker vs. two? (COI headers + precache)
- Icon source — reuse the brass accent / an "A5 page" mark?
Goal
Make the flyer editor installable as a Progressive Web App so it can be launched from the home screen / app dock and run in a standalone window.
Why
The app is already local-first (Evolu/SQLite in the browser, syncs via mnemonic) — it behaves like an offline app but can't be installed like one. PWA support would give it an app icon, standalone chrome-less window, and reliable offline loading of the app shell.
Scope / notes
display: standalone,theme_color/background_colormatching the dim-studio chrome,start_url/scopeunder the/flyer-editor/base.coi-serviceworker(which injects COOP/COEP for SharedArrayBuffer). Care needed so two service workers don't conflict — likely fold the caching into a single SW, or ensure the COI worker keeps controlling the COOP/COEP path.beforeinstallprompthandling / install button.vite-plugin-pwais the obvious tool, but verify it plays nicely with the hand-rolledcoi-serviceworkerand the/flyer-editor/base path on GitHub Pages.Open questions