@Scmbradley @whitequark
I actually pondered a few variations of this a while ago. Could you write a rendering engine in JavaScript using the canvas / WebGPU tag and JS accessibility hooks? If so, that significantly reduces the number of things that you actually need in a browser, and maybe the browser could just bundle this.
It would have the nice property that you’d have a much more Smalltalk-like world: everything in the browser is visible to the program except for the final rendering stage. The browser becomes a JavaScript + WebGPU implementations, which is a much smaller and more maintainable piece of code.
My starting point was actually the opposite direction. I was pondering X11 replacements and thought that (contrary to the opinions of the Wayland folks) remote display was a critical feature for a new display server. It seemed a good idea to have one implementation that ran in a browser, so that you could do remote display with a simple HTTP + WebSocket wrapper, either tunnelled over SSH or directly with HTTPS and a client TLS cert stored on the server. This would probably let you do rapid iterative prototyping and then also implement a native version that removed the browser. Having the ability to ship WebAssembly view objects to the display server and have them talk an RPC protocol to the app would give you the benefits of NeWS, but built on a more modern technology base.