ScuffleTV / scuffle

Live streaming platform
https://scuffle.tv
224 stars 25 forks source link

User extensions #177

Open TroyKomodo opened 6 months ago

TroyKomodo commented 6 months ago

Tell us about your Wish

Allow for an extension system which allows users to write custom extensions for the website.

Such as player extensions which add overlays to provide additional abilities, such as a voting system or sound board or whatever (similar to minecraft mods). Or themes, where users can use theme packs (like mincraft resource packs) which can reskin the scuffle website.

For the extensions we would have some sort of Javascript SDK and then sandbox their script in a IFrame with some restrictive CSP enabled. The SDK would use the IFrame messaging protocol to communicate with the scuffle website and invoke commands / other shit to hook onto events that happen. (like getting the current player time etc).

For themes we would store them on the backend and they will be served via GQL when the user first loads the page.

We would also need to make some extension store or some visibility thing like a marketplace where users can pickout themes / submit new themes / tools or other features.

I think also all Javascript extensions that are added to channels will be opt-in. Meaning if you go to a page you can click the settings cog and authorize a extension to run and see what information the script gets about you. Also authors would be required to have the github source code opensouce and on a permissive compatible license.

Is your feature related to a bug

No response

Additional Info

This feature is not targeted for any release its more so a general idea/brainstorm we can think about and discuess.

Participation

TroyKomodo commented 6 months ago

The idea came about while talking to @emoss08 on stream

lennartkloock commented 6 months ago

Sounds like a good idea but a bit out of scope for now