PWAs still have lots of problems. There are multiple issues, but IMO one of the biggest is that storage on the web is bad. We've gotten a lot of iteration on this, there are tons of ways to store information on a website. But none of them have offered really substantial gains over each other.
- All of them can be cleared directly from the browser, which might happen as a part of regular cleanup. This can happen on the desktop, but is much less likely to happen. Usually if a text file or image gets deleted from the desktop, the user deleted it. If localstorage gets cleared, maybe an extension deleted it. Or maybe the user just has "clear all data on exit" checked for the browser.
- There's no way for me as a user to easily clear out part of that storage, unless the app builds in its own tools to do so. Managing the storage in general is cumbersome -- quick, without looking can you tell me how to clear local storage for a specific site in Firefox without visiting the web site?
- None of them are easily accessible across browsers. So if a user accesses your website in Chrome and then opens it up again in Firefox, it's kind of a pain to move something like local storage over. Certainly, it's not something the user can easily control.
- None of them are easily accessible from native apps. Think about something like Atom, which couldn't really work on the web even in a paired down form unless it prompted you to manually download every file you edited.
- None of them are easily backed up and transferred across computers. At best, you'll get some kind of browser sync that's tied to an online account. But it's not trivial for an average user to say, "hey, I'm going to put the storage for this site on a USB drive and plug it into a new computer." If you're bundling software as an electron app, you could run the entire thing from a USB drive.
The way most sites get around this is they have online accounts that sync things and back things up. This is (again IMO) sub-optimal. It makes web apps more complicated, it forces them to require an Internet connection (it's all well and good to hook up a service worker to your site, but without good file storage you can't really make an offline-only app). It requires users to give up control of their data, and to supply personal information to use your app. It makes everything more expensive -- what would Atom look like if all of your code was getting synced to a remote server somewhere?
I understand that local file access is ridiculously dangerous. It's a huge can of worms that could be a disaster on the web if done poorly, and I absolutely don't trust anyone except maybe Mozilla to get it even mildly right. But I do think even with all of that danger, if we want the web to transition towards PWAs and protocols that value user-control over hosting and data (IPFS for example), we need to consider adding some kind of user-accessible file-based storage to the web. Something where I can open a web app in any browser, point it at a directory, and have it write files to that directory that can be accessed by native software I control.
It doesn't have to literally be, "let web browsers just start writing stuff to my hard drive." That would be stupid. But we should try to think of something.
The alternative is that the only services that actually work on the web are server-backed apps that require you to give up your data and that don't integrate well with other programs. And any (web) app where that's not feasible or where the developer cares about user privacy will be bundled into gigantic, resource-hungry Electron frameworks.