Just some thoughts about the web:

The web is such a great platform to ship software to.

It is extremely low-cost for users to try out the software: you can install an app just by visiting a webpage.

The risk of malware is quite low in this day and age.

It runs on all types of machines.

It’s got a pretty good scripting language.

HTML and CSS form a world class UI interface.

Some downsides

You can’t run sub-processes or use non-web dependencies.

There’s no built-in concept of a file: a persistent object that the user can read, move, backup, etc. There’s not even real persistent data at all — localStorage and IndexedDB are an attempt but they cleared when a user clears their browsing data…

You can’t run arbitrary code in the background without a tab being open.

Lastly, every web-app that has persistent state is a distributed system between the client and its server. This isn’t the case with most desktop apps, and adds quite a bit of complexity to the whole thing.

Other cross platform UI paradigms

Aside from web apps, we’ve got terminal apps, and apps built with cross platform widget libraries like QT, Wx, Tcl/Tk. There’s also Tauri or Electron. Electron’s success shows just how much value there is in this area of cross-platform UI alongside OS-level capabilities.