> nightmarish pain point that is the amount of time we spend implementing the same features across the three different platforms
I've been toying with the idea of providing dynamic extensions to Matrix rooms by sending a WASM payload as an event.
That WASM could then provide new UI elements, interactions, interpret events, etc. This could be used to implement polls (I know it's coming, but that's an example) or whiteboards inside existing clients.
It's just an idea, not sure how it would work in practice... But if anyone wants to have a go at it, be my guest!
That sounds terrifying from a security perspective. I know wasm is sandboxed, but it's in a sandbox with all the user's data and parts of the user interface, which is quite enough to do damage.
I agree that the attack surface needs to be carefuly thought about. It shoudln't be much harder than current "widgets", though.
I was thinking of something that only does I/O with data contained in the room it's in. I think the UI would be the hard part, but it could be doable with a few HTML tags and an extensible UI.
For instance: add an "insert poll" button, or an "add voice message" button. Or an "add sticker"/emoji/gif, etc. Currently every client needs to build this individually. Users could pick the features they want in their clients.
Moreover, not every plugin needs to be third-party. A "trusted store" could very well be maintained.
I've been toying with the idea of providing dynamic extensions to Matrix rooms by sending a WASM payload as an event.
That WASM could then provide new UI elements, interactions, interpret events, etc. This could be used to implement polls (I know it's coming, but that's an example) or whiteboards inside existing clients.
It's just an idea, not sure how it would work in practice... But if anyone wants to have a go at it, be my guest!