[HN Gopher] Jam - Self-Hosted Clubhouse
       ___________________________________________________________________
        
       Jam - Self-Hosted Clubhouse
        
       Author : synergy20
       Score  : 205 points
       Date   : 2021-12-09 04:41 UTC (18 hours ago)
        
 (HTM) web link (github.com)
 (TXT) w3m dump (github.com)
        
       | boredumb wrote:
       | No host and guest speaker functionality and a bit unpolished, but
       | free p2p chat/screenshare/video chat in the browser
       | https://teamvideo.app/
        
         | dxbydt wrote:
         | i gave this a shot. you have some kind of weird bug, if you
         | click share and try to share teamvideo you get this infinity
         | hall of mirrors - https://imgur.com/a/ymujedG
        
       | orlovs wrote:
       | Is Clubhouse still a thing?
        
         | [deleted]
        
         | progx wrote:
         | I was wondering too. Since the little hype no one talk about
         | it.
        
       | tosh wrote:
       | Wow, I just woke up to this. Glad to see Jam here on hn. We've
       | come a long way since the initial release earlier this year (Show
       | HN: https://news.ycombinator.com/item?id=26131123).
       | 
       | Most of our efforts since february went into making the rooms
       | more reliable which sounds simple but there are actually
       | countless of different reasons for why audio might not work or
       | not work as well as it could (switching from wifi to mobile data,
       | microphone permissions, bandwidth problems, OS forces app into
       | background, ...) some are solvable others at least need to be
       | documented and tracked.
       | 
       | What else is new other than reliability?:
       | 
       | # Support for large rooms (think: thousands of people in the
       | audience) using an SFU
       | 
       | Initially Jam only had support for p2p rooms which is great for
       | small rooms (up to like ~20 people depending on upstream
       | bandwidth of the speakers) but for online conferences, meetups
       | and so on you often need rooms that support 100s or 1000s of
       | participants so we added an SFU where the speakers still send
       | audio to each other p2p to keep conversations low-latency but we
       | use a server to stream audio to all users that are in the
       | audience.
       | 
       | (That said: you can still run Jam p2p-only if you prefer that)
       | 
       | # Locally recorded multi-track audio (think: podcasts with
       | multiple guests, where you get one high quality audio track per
       | speaker)
       | 
       | You can try multi-track audio recordings on our public beta
       | server (https://beta.jam.systems). Tap on our own user and then
       | "Start Podcast Recording". When you tap on your own user again
       | and then "Stop Podcast Recording" the browser will prompt you
       | with downloads for all audio tracks (we will make this more
       | smooth going forward).
       | 
       | # Custom UI
       | 
       | For everyone who wants to add audio rooms to their own app but
       | needs full control over the look and feel we have added an API
       | and JavaScript library (and NPM package) so you can "build your
       | own" ui for Jam. This basically means that Jam is running
       | "headless" as an audio room server and makes sure audio works
       | while you can build exactly the ui that you want.
       | 
       | E.g. let's say you have an app like Google Docs and you want to
       | allow people to talk about a document. In this case you might
       | want something that doesn't look like a room on Clubhouse or
       | Twitter Spaces but rather like a line of avatars and with the API
       | and library you can build this yourself now:
       | 
       | https://www.npmjs.com/package/jam-core
       | 
       | https://gitlab.com/jam-systems/jam/-/tree/master/ui/examples
       | 
       | # Managed hosting
       | 
       | For everyone who wants to use Jam but doesn't want to install and
       | maintain Jam themselves we are run and support Jam for you
       | (think: what Wordpress.com is to Wordpress.org):
       | 
       | https://jamshelf.com
        
         | aSig wrote:
         | This is interesting, thanks for sharing.
         | 
         | How do you stream the audio to the people in the audience? Are
         | you still using WebRTC or do you add some latency and use
         | something like HLS? If WebRTC do you know the number of maximum
         | listeners you can get to on the SFU?
        
           | tosh wrote:
           | We were able to serve 500-1000 participants from a mid-sized
           | VPS a few weeks ago and were CPU constrained iirc so a
           | beefier server should go further than that.
        
         | fancy_pantser wrote:
         | There's no mention of privacy I can find; should you mention
         | anything in the README about encryption? In particular with an
         | SFU.
        
       | johnchristopher wrote:
       | Ahaaa ! I see you setup your docker compose with traefik for the
       | reverse proxy, with automatic http-to-https ! Really cool to see
       | a docker-compose file almost ready-to-deploy without passing the
       | buck of configuring the reverse proxy to users :).
        
         | hda111 wrote:
         | This is the feature that docker-compose lacks but is needed the
         | most. There should be something like traefik-compose or caddy-
         | compose with simple YAML config. I forget how the traefik
         | labels work all the time.
        
       | rexreed wrote:
       | I'm still new to Clubhouse and trying to understand the appeal.
       | Is Clubhouse basically like the old radio call-in talk radio
       | (live talk radio shows) where you basically can have your
       | audience "call in" and join the hosts? Is it anything more than
       | live podcasting with an audience that can also be made to be
       | guests and you get their reactions? Am I missing something? Or is
       | Clubhouse more of a free-for-all group voice chat with no real
       | leader, like just getting onto a Discord channel and talking?
       | Clue me in!
        
         | halfeatenpie wrote:
         | I'm still new to Clubhouse as well but my understanding of the
         | ecosystem is that it's a lot more interactive than just a "live
         | podcast" as there's ability for more audience engagement,
         | community interviews, and basically a two-way interaction space
         | where the audience can participate in the "live event". It's
         | basically a discord channel but with more structure on who has
         | the floor and moderation tools.
         | 
         | I think it's definitely an interesting approach to community
         | creation and engaging with your audience. What I'm still trying
         | to learn and understand is where it's going, as I don't think I
         | use it enough yet to fully see the "road to monetization,
         | profitability, and sustainability" of the platform. I kind of
         | wish room discovery was a bit easier beyond the network-based
         | approach that they're using, but I'm just being nitpicky now.
        
           | rexreed wrote:
           | Any pointers to some good overviews on well-run Clubhouse
           | groups and the sort of interaction that happens? Any recorded
           | sessions that might be somehow viewed to see how the
           | interaction happened during that session?
        
       | ggambetta wrote:
       | Clubhouse is _so_ earlier 2021
        
       | pxeger1 wrote:
       | What's with the emoji vomit in the README?
        
         | user-the-name wrote:
         | It's 2021, and people use and like emoji, and you probably need
         | to find a way to accept this.
        
           | GoatHerders2 wrote:
           | Calm down.
        
           | goodpoint wrote:
           | How about using them in reasonable amounts? They mostly only
           | add visual clutter without conveying any meaningful
           | information.
        
             | tosh wrote:
             | Point taken, I'll look into whether we can tone down the
             | feature comparison table to make it easier to read.
        
         | majkinetor wrote:
         | It looks like there was a party last night and every emoji in
         | existence was invited.
        
       | eloeffler wrote:
       | I see no mention of federation capabilities in the readme. Is
       | something like that planned? It would be nice to have the
       | possibility to join across hosted instances.
        
         | rapnie wrote:
         | Pity there's no issue tracker on the repo. I am not on Discord
         | or Slack but maybe it was discussed there, and maybe that can
         | still be found.
        
           | tosh wrote:
           | The main repo is over at Gitlab: https://gitlab.com/jam-
           | systems/jam/ which also has the issue tracker (we could do a
           | better job keeping that up to date though tbh).
        
             | rapnie wrote:
             | Thanks. Completely missed that.
        
         | tosh wrote:
         | We're interested in federation and discussed it a couple of
         | times but we don't fully support it yet. Happy to learn more
         | about what you have in mind.
        
       | xtf wrote:
       | Needs websitecode to be public, if this AGPL-Programm is shown in
       | an I-Frame?
        
       | ushakov wrote:
       | is this p2p?
        
         | tosh wrote:
         | You can run Jam in p2p mode where all users in a room are
         | connected to each other. That's great for scenarios where you
         | have lots of small rooms and also great if you want to save
         | cost.
         | 
         | If you want to support large rooms with hundreds or thousands
         | of participants well be aware that p2p might run into issues if
         | speakers are bandwidth constrained (since every speaker has to
         | send their audio to every other participant). That's why we've
         | added a mode where the speakers are p2p (low latency) and also
         | send their audio to the server which then sends it to the
         | audience members (SFU).
         | 
         | Edit: out of the box you get p2p for speakers and SFU for
         | audience members, you can configure Jam to not use the SFU
        
           | ushakov wrote:
           | that's a neat solution!
        
       | timar wrote:
       | neat, you can join instantly for discussions no fuss with
       | registrations and with no video possible it there's no awkward
       | cams on/cams off dynamic.
        
       | imgabe wrote:
       | I hate to be this guy, but why is this better than using
       | teamspeak, ventrilo, discord, or any of the other group voice
       | chat programs?
        
         | DarylZero wrote:
         | You can't self-host them. They're not even options. It's like
         | saying "why is your car better than Amtrak." Maybe it's not
         | better -- it's certainly worth less money -- but you're not
         | shopping for a railroad. The only way to self-host Discord is
         | to buy the entire company, valued $15B.
        
           | proxysna wrote:
           | IIRC you can self-host Teamspeak and Ventrillo.
        
             | DarylZero wrote:
             | You can, so they're more similar to Jam as far as software.
             | On the licensing, not so much. Teamspeak requires a
             | recurring payment.
        
             | imgabe wrote:
             | I have definitely done so with both of them, but it was
             | quite a while ago, not sure if that has changed.
        
         | [deleted]
        
         | goodpoint wrote:
         | You cannot self-host those.
         | 
         | Instead, how is it better than Jitsi and Mumble, given that
         | they are already well tested and widespread?
        
           | tosh wrote:
           | In the beginning we actually were looking at whether we can
           | use Jitsi for the audio part of Jam and just focus on the ui
           | but Jitsi is huge and difficult to get into so we (arguably)
           | naively started from scratch and then had to solve many
           | problems that Jitsi probably already solves (?).
           | 
           | That said: if you are looking for something that has room
           | concepts close to Clubhouse or Twitter Spaces (you see who is
           | in the room, who is speaking, you can move people between
           | audience and stage and so on) and an easy way to add those
           | rooms to existing (web) or mobile apps then Jam is great out
           | of the box. If you are looking for screen sharing or video
           | then Jitsi is a better starting point right now I think.
           | 
           | Mumble I am not very familiar with but it looks interesting.
           | As far as I understand it is not web based but like Jam it
           | also is p2p and uses opus for audio (low latency, high
           | quality)? Perhaps someone who knows Mumble can do a
           | comparison.
        
             | im_dario wrote:
             | Mumble isn't exactly P2P. It has a server (murmurd) that
             | handles all the streams. I think it could work as SFU. And,
             | actually, there is a web frontend:
             | https://github.com/Johni0702/mumble-web
             | 
             | Your use of Opus and the option to run a SFU makes this a
             | suitable replacement of Mumble for meetings, like in the
             | Pirate Parties around the world. We are heavy users of
             | Mumble.
        
         | tosh wrote:
         | For users: Jam works in the browser without having to install
         | anything (Discord does too though) and without having to create
         | an account. You just need the URL of a room and you can join.
         | 
         | Jam is open source so you can look at the code but also make
         | changes if you want to (e.g. if you prefer different reaction
         | emoji). While not trivial it definitely is a great option to
         | have imho.
         | 
         | Last but not least we designed Jam in a way that works well
         | stand-alone but also makes it easy to integrate in existing web
         | and mobile apps. For example there are people who run
         | forums/communities or saas b2b apps (e.g. productivity tools)
         | who want to add audio rooms as a feature and with Jam they can
         | just grab the code and add rooms using an iframe (or use the
         | JavaScript library for more advanced integrations). Not sure if
         | that's possible with teamspeak, ventrilo or discord?
         | 
         | Jam is p2p WebRTC w/ low-latency and high-quality audio (opus)
         | so it _should_ work well for competitive gaming. If you are
         | looking for an audio chat tool designed for gaming the existing
         | solutions you mentioned might be a better fit but happy to
         | learn more about how we could make Jam better there as well.
        
           | dsr_ wrote:
           | What do I do if a troll joins the room and starts playing
           | Rick Astley non-stop?
        
             | tosh wrote:
             | You join in the audience (others only can hear you if you
             | are on stage), moderators can move trolls back to the
             | audience. Simple but works quite well.
        
         | gnomewascool wrote:
         | Unlike all the software you listed, it's open source and can be
         | self-hosted in a way that you can be relatively confident that
         | you're running what you intended to run?
        
       | billconan wrote:
       | I kind want a asynchronized audio social network. like a forum
       | where content can persist.
        
         | loceng wrote:
         | Can you explain a little more? Do you mean like a threaded
         | audio stream, so anyone at a future point can reply to a
         | specific recording/response by someone? E.g. Interjecting your
         | own thought, that could notify the OP that the reply was made,
         | etc?
        
       | qvq wrote:
       | I wonder if sub-groups would be a good feature. Sort of like
       | "tables" you could join to speak to others at the table. You
       | would still be able to hear the speakers on stage but users at
       | tables can only speak to each other.
        
         | tosh wrote:
         | Great idea, we do not have support for sub-groups yet but I can
         | see how this could be very useful for meetups and other
         | formats. We'll think about it!
        
       | michihuber wrote:
       | Nice, knew about Jam before, but just learned about jam-core.
       | Will integrate into our app, thanks for sharing.
        
       | rvz wrote:
       | Now that one can roll their own 'Clubhouse' alternative for free
       | using Jam, how is the original Clubhouse remotely worthy of being
       | valued at $4B with users running to the competitors like Twitter
       | Spaces, Discord Stage Channels, etc and no route to making money?
       | 
       | Perhaps Clubhouse is on a similar road like Genius; a devalued
       | exit. All because this concept has been copied to death, users
       | still running to alternatives and now reduced to an open-source
       | contraption on GitHub for everyone to self-host themselves.
       | 
       | Quite unsurprising.
        
         | spoonjim wrote:
         | Clubhouse's free fall has nothing to do with open source
         | alternatives. Social apps are powered by the user base, not the
         | technology.
        
           | jamil7 wrote:
           | Yep. Despite the initial few interesting talks it's now just
           | self promoters and NFT cultists.
        
             | LudwigNagasena wrote:
             | So they should do an ICO exit
        
             | [deleted]
        
           | rvz wrote:
           | True. That explains why tons of users are still using Twitter
           | Spaces, Discord Stage Channels and the rest of the
           | competition and Clubhouse is still struggling even after
           | opening the invites late; as predicted. [0]
           | 
           | I consider Jam, the second last nail in the coffin for
           | Clubhouse.
           | 
           | [0] https://news.ycombinator.com/item?id=27490149
        
         | usrusr wrote:
         | Unsurprising indeed. You can't fly that high on technological
         | merits, at least as long as it's just some web software thing
         | and not something as extraordinary as reusable space rockets.
         | It's all about brand on that level. And sure, a brand as fresh
         | as Clubhouse can drop to irrelevancy in weeks because everybody
         | who is already connected to the brand is, by definition, an
         | early adopter. And early adopters are the quickest to jump ship
         | when something new and shiny appears elsewhere.
        
         | Nextgrid wrote:
         | To be fair, none of these competitors are making money either.
         | It's hard to make money from "growth and engagement" in a world
         | already saturated with advertising.
        
         | tosh wrote:
         | Jam is to Clubhouse (and Twitter Spaces) a bit like what
         | Magento is to Amazon.
         | 
         | I'm quite optimistic when it comes to Clubhouse. Discovery is
         | definitely a challenge but I think with replays (room
         | recordings) and mixing those into the feed next to live rooms
         | they are on the right track.
        
       ___________________________________________________________________
       (page generated 2021-12-09 23:02 UTC)