Via @simonw, I note WebAssembly in my Browser Desktop Environment [repo], a desktop that runs in your browser. It also supports Wine apps, so open the demo, drag a Windows exe file onto the desktop that should have loaded in your browser, and run the app…
For example, here’s the old OU RobotLab app running, as a Wine app, in my browser, having dragged it into the browser from my own desktop.
As more and more stuff runs in the browser, the blocker becomes file persistence. I’m guessing that this browser desktop saves into browser storage; but to be properly useful, things like this need to be able synch either with remote storage, or with your own physical desktop using something like the browser File System Access API (browser availability)?
I’m guessing that I may be coming across as all negative on this. I’m just pre-empting one of the two most obvious reasons why I think “colleagues” will say this is a non-starter for use with OUr students; the other being browser-spec requirements. The next most obvious “but we can’t use this with students becuase…” argument will probably but “but you can’t use it offline”. Having to install something to the desktop to serve it locally cancels the “install free” benefits of running things in the server, so the next desirable feature would be the ability to “install” it as a browser app / progressive web app. (For an example PWA installed as a Chrome app from a website/URL, see eg SQL Databases in the Browser, via WASM: SQLite and DuckDB.)