By popular demand, we recently released a desktop app version of our PWA. There are some features that users want but cannot be done in a browser, so we released a version that is wrapped with NW.js and uses Node APIs to cover some gaps. I’d prefer that this is not necessary and that we could do everything from our PWA. There are just a few points that we still need a desktop app for:
Read/write access to a folder on disk. Users often work with very large projects in our software (e.g. 100mb+). In the browser we save to a zip. This is slow and makes using source control difficult. By saving a project as separate files in a folder, saves are much quicker and it naturally integrates with source control.
Launching external programs. Our software has a built-in image editor, but some users still prefer to use other tools, e.g. Photoshop. To make this convenient, our desktop app adds a button to open the image to edit in another program. This involves writing a temp file to disk and executing another program to open the temp file.
Reduced memory use. This one was a bit of a surprise, but it turns out many users have browser addons that substantially increase the memory usage of the browser. They want these addons for normal web browsing, but for a long session in a web app, this is unnecessary overhead. Since our NW.js build is isolated from the browser, it contains no addons and so has no extra memory overhead.
If we are to remove the need for a desktop app download, these points will need to be addressed. I know some of these have serious security concerns, but arguably downloading and installing an app with arbitrary capabilities is even less secure. It would be good if the browser could provide similar features but with extra sandboxing/security protections. I would be totally fine with these capabilities only being available when you “add to homescreen” and run as a PWA.