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 :).
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.
You will not get that. Proxying traffic has many parameters because the protocol itself has many options to do things differently. Best you can have is a default sane traefik config for your usual hosting solution.
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.
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!
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.
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?
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:
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):
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?
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.
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.
Hi, nice to hear that. I first thought you'd need an account to join, but it's very cool to see that this works without accounts!
With ActivityPub[1] federation it might be possible to show account informations of users if they decide to join with their federated account.
It is for example possible to comment on a PeerTube instance on one server by using a Mastodon account from another server.
I'd love to help but I have no experience at all with such protocols and how servers do the magic :) If you do manage to implement something I will be very impressed, too.
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).
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
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.
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.
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.
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.
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.
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?
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
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.
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.
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?
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.
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.