Resenha - Add Discord-style Voice Rooms to Your Community ๐ŸŽ™

Is this Enterprise only or can it run on professional.

There is no โ€˜Professionalโ€™ plan for Discourse? But yes, since this is not official, it can only be installed on the highest plan, Enterprise.

Errr! There is?!

Source: https://discourse.org/buy

ืœื™ื™ืง 1

I guess Iโ€™ve never associated โ€˜Proโ€™ with โ€˜Professionalโ€™โ€ฆ

ืœื™ื™ืง 1

Isnโ€™t Pro a notation of Professional

True, but I would have expected Professional to be higher than Business (hence Pro?)

@Falco Iโ€™ve completed the integration however I had to change from basic webrtc to include an SFU sdk, through a separate docker container and Iโ€™ve also gone as far as to create a separate interface from your standard sidebar and included livestream capabilities for when an audio discussion is for a large community.

It can be start and stop from discourse web or from Domniq - A Discourse Native Android+iOS App Preview, admin control, room control all available.

I didnโ€™t focus on a discord style chat but more or less curated clubhouse x/spaces from your plugin core although Iโ€™ve kept credits to you.

4 ืœื™ื™ืงื™ื

I added video, both screen-sharing and webcam videos are now available behind a site setting in the plugin.

17 ืœื™ื™ืงื™ื

@Falco how soon we could try with a hosted forum, this is so good, just cannot try it now :slight_smile:

Well since itโ€™s not official, youโ€™d need the Enterprise plan or to self-host.

There seems to be a compatibility issue with instances on running on esr, the plugin fails to load with

Uncaught (in promise) Error: Could not find module discourse/blocks imported from discourse/plugins/resenha/discourse/components/resenha-anon-rooms-block
f loader.js:247
f loader.js:258
findDeps loader.js:168
f loader.js:262
findDeps loader.js:168
f loader.js:262
requireModule loader.js:24
iI app.js:228
iN app.js:251
start app.js:210
start app.js:225
start-app.js:19
loader.js:247:1

It breaks the layout on topic list in Horizon theme.

Trying to use experimental plugins with ESR Discourse is not a winning strategy.

If you want to use this plugin, stick to latest.

5 ืœื™ื™ืงื™ื

I hoped there were mechanisms like d-compat to ensure older versions of discourse stay compatible in these cases! :sad_but_relieved_face:

Moving to latest is not an option for this instance, so the plugin stays disabled I guess

2 ืœื™ื™ืงื™ื

We have those for production official plugins yes, but it is unreasonable to expect this for every experiment we put out.

2 ืœื™ื™ืงื™ื

Noted :+1:

(Twenty Chars)

Had a quick chat with @Falco and a few others today using this plugin and it was fun!

I was chatting w/ @markvanlan about something else and noticed the mic icon next to his avatar. Decided to hop into a chat in the Watercooler channel and got to see some faces I donโ€™t see very often.

Very cool to see what youโ€™ve been doing here, Falco.

4 ืœื™ื™ืงื™ื

We happened to do an internal all hands on deck on this plugin in the last two weeks, here is what happened:

LLM Summary of last two weeks in Resenha

:sparkles: Features

  • Persistent in-room chat โ€” link a voice room to a Discourse chat channel; each session opens a real thread with full reactions, edits, and uploads. Rolls over to a new thread after a configurable idle timeout.
  • Screen share audio โ€” tab and system audio now travel with screen shares over a dedicated track, separate from the mic. Respects per-user volume/mute/deafen.
  • Voice settings modal โ€” pick input/output devices, see a live mic level meter, and set a noise gate threshold. Preferences persist per device and apply mid-call without renegotiation.
  • Resizable docked widget โ€” drag-to-resize via a top-left handle, anchored bottom-right, size persisted. New extra-minimized state shows only Expand + Leave buttons. Video streams correctly in widget mode.

:artist_palette: UX

  • Sidebar participant status icons (mute/deafen/screenshare/camera/PTT) now all appear together on the right edge; speaking wave animates over the avatar.
  • Voice rooms now visible in the full-screen chat sidebar.
  • prioritize_username_in_ux site setting respected in video tiles and anonymous rooms block.
  • Widget z-index fixed for mobile menus; SE resize handle restored; dock button got a proper ariaLabel.

:bug: Fixes

  • Video grid layout stuck at fullscreen dimensions after exiting fullscreen.
  • Sidebar participant counts drifting for non-participant users (broadcast targeting + Redis + client cleanup).
  • Audio cues broken on Android (AudioContext now resumed before playback; shared singleton avoids context limit).
  • Remote video not appearing when a peer starts publishing after initial handshake.
  • Stale participant broadcast targeting.

If someone is using this, Iโ€™m happy to hear feedback on the recent changes.

11 ืœื™ื™ืงื™ื

Nice feature bump, how possible would it be to apply this to the events plugin? Could a hook be established that renders on the events topic? That will redirect to full view outside of the sidebar?

Iโ€™ve noticed that many forums donโ€™t have sidebar enabled for discourse they use the header dropdown instead, how does this affect resenha? Are plans on the way to have it as itโ€™s own chat popout interface? Similar to the Channels and DMs dock that exist currently.

2 ืœื™ื™ืงื™ื

That may be on the cards in the future, but we donโ€™t have anything like that planned at the moment. Maybe it could be something when an event has a Resenha room in its location URL. Five minutes before the event, we trigger an in-app notification, push notifications, and emails that, when clicked, direct the user to the /resenha/r/#{room.slug} so they land straight into the event room.

No idea to be honest, this is far down my list of priorities :laughing:.

We added both recently, so you have the popup widget:

and the full page view:

So technically it can be used as long as you stuff the link to the room somewhere your users can find it.

4 ืœื™ื™ืงื™ื

Just checked out the demo, thatโ€™s a massive jump, really impressive work. From my previous post I shared, I went with the LiveKit SDK to handle audio for larger groups, with an egress-fed broadcast page streaming out to YouTube. Yours new full screen view for rooms looks more robust, Iโ€™ll look a bit deeper to see if the current update can have continuity for my needs while under resenha.