Transition UI to PWA #76

Closed
opened 2026-02-28 18:47:51 -06:00 by GiteaMirror · 2 comments
Owner

Originally created by @DesignsWithDavid on GitHub (May 3, 2022).

A Progressive Web App (PWA) would allow a single UI to be maintained that could be used on mobile, desktop, and web. The desktop app could be packaged with something like Electron, and the mobile apps would simple involve navigating to a web page in a browser and selecting "Add App to Home Page". A great example of this well implemented is the FOSS app, Photoprism.

Originally created by @DesignsWithDavid on GitHub (May 3, 2022). A Progressive Web App (PWA) would allow a single UI to be maintained that could be used on mobile, desktop, and web. The desktop app could be packaged with something like Electron, and the mobile apps would simple involve navigating to a web page in a browser and selecting "Add App to Home Page". A great example of this well implemented is the FOSS app, [Photoprism](https://github.com/photoprism/photoprism).
Author
Owner

@MikeBishop commented on GitHub (May 4, 2022):

This has a lot of potential. The Desktop app doesn't even necessarily need to be packaged with Electron -- desktop browsers also support installing PWAs locally. PWAs have several advantages, like seamless updating and the ability to background sync data.

The primary limitation that I see is that PWAs can't (as far as I can tell) write directly to the filesystem behind the scenes. The IndexedDB Actual uses to persist the files in the web app risks being lost when clearing data from the browser / uninstalling a browser without the user realizing they're connected. That's fine, assuming an authoritative version of the data exists on the server; less-so if the local copy is the only copy. So the PWA version probably needs to continue Actual's current restriction of only permitting synced files, while a packaged Desktop app could support purely local files.

@MikeBishop commented on GitHub (May 4, 2022): This has a lot of potential. The Desktop app doesn't even necessarily need to be packaged with Electron -- desktop browsers also support installing PWAs locally. PWAs have several advantages, like seamless updating and the ability to background sync data. The primary limitation that I see is that PWAs can't (as far as I can tell) write directly to the filesystem behind the scenes. The IndexedDB Actual uses to persist the files in the web app risks being lost when clearing data from the browser / uninstalling a browser without the user realizing they're connected. That's fine, assuming an authoritative version of the data exists on the server; less-so if the local copy is the only copy. So the PWA version probably needs to continue Actual's current restriction of only permitting synced files, while a packaged Desktop app _could_ support purely local files.
Author
Owner

@MikeBishop commented on GitHub (May 4, 2022):

I think the first step here would probably be to move the sync logic into a ServiceWorker, since that's a hard requirement for PWA support.

@MikeBishop commented on GitHub (May 4, 2022): I think the first step here would probably be to move the sync logic into a ServiceWorker, since that's a hard requirement for PWA support.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/actual#76