Remote presence tools for social distancing
As a technologist, I've been wondering how I can help people with the rapidly spreading coronavirus pandemic. With the world entering the "exponential stage" (e.g. Canada, the USA and basically all of Europe), everyone should take precautions and limit practice Social Distancing (and not dumbfuckery). But this doesn't mean we should dig ourselves in a hole in our basement: we can still talk to each other on the internet, and there are great, and free, tools available to do this. As part of my work as a sysadmin, I've had to answer questions about this a few times and I figured it was useful to share this more publicly.
Just say hi using whatever
First off, feel free to use the normal tools you normally use: Signal, Facetime, Skype, Zoom, and Discord can be fine to connect with your folks, and since it doesn't take much to make someone's day please do use those tools to call your close ones and say "hi". People, especially your older folks, will feel alone and maybe scared in those crazy times. Every little bit you can do will help, even if it's just a normal phone call, an impromptu balcony fanfare, a remote workout class, or just a sing-along from your balcony, anything goes.
But if those tools don't work well for some reason, or you want to try something new, or someone doesn't have an iPad, or it's too dang cold to go on your balcony, you should know there are other alternatives that you can use.
Jitsi
We've been suggesting our folks use a tool called "Jitsi". Jitsi is a free software platform to host audio/video conferences. It has a web app which means anyone with a web browser can join a session. It can also do "screen sharing" if you need to work together on a project.
There are many "instances", but here's a subset I know about:
- https://meet.jitsi.org/ - the official one, might overload
- https://meet.mayfirst.org/ - Mayfirst non-profit cooperative, hosted in New York (see also their usage instructions)
- https://meet.greenhost.net/ - Greenhost, hosted in the Netherlands
- https://framatalk.org/ - Framasoft, a popular education network, hosted in France - note that Framasoft is struggling under load as basically everyone in France (including the public education network) seems to think they can all run on their servers all at once, they encourage you to run your own instance instead of using theirs
- another list of instances
You can connect to those with your web browser directly. If your web browser doesn't work, try switching to another (e.g. if Firefox doesn't work, try Chrome and vice-versa). There are also apps for desktop and mobile apps (F-Droid, Google Play, Apple Store) that will work better than just using your browser.
Jitsi scale for small meetings up to a dozen people and maybe more.
Update: LWN did a review of Jitsi, including the server setup.
Mumble
... but beyond that, you might have trouble doing a full video-conference with a lot of people anyways. If you need to have a large conference with a lot of people, or if you have bandwidth and reliability problems with Jitsi, you can also try Mumble.
Mumble is an audio-only conferencing service, similar to Discord or Teamspeak, but made with free software. It requires users to install an app but there are clients for every platform out there (F-Droid, Google Play, Apple Store). Mumble is harder to setup, but is much more efficient in terms of bandwidth and latency. In other words, it will just scale and sound better. It also has interesting moderation and room management features which allow creative use of the software. For example, Mayfirst use it for interpretation (AKA "simultaneous translation").
Mumble ships with a list of known servers, but you can also connect to those trusted ones:
mumble.mayfirst.org
- Mayfirst (see also their instructions on how to use it, hosted in New York citynot a public servicemumble.riseup.net
- Riseup, an autonomous collective, hosted in Seattle (ask me if you need their password)talk.systemli.org
- systemli, a left-wing network and technics-collective, hosted in Berlin
Update: I wrote a separate article about Mumble's usability problems. During a one-time, real-world, test with a new audience, Mumble lost 30% of its audience due to technical issues when compared to Jitsi. But it's the only platform listed here that works over Tor, and the server setup is trivial.
Live streaming
If for some reason those tools still don't scale, you might have a bigger problem on your hands. If your audience is over 100 people, you will not be able to all join in the same conference together. And besides, maybe you just want to broadcast some news and do not need audio or video feedback from the audience. In this case, you need "live streaming".
Here, proprietary services are Twitch, Livestream.com and Youtube. But the community also provides alternatives to those. This is more complicated to setup, but just to get you started, I'll link to:
- https://live.mayfirst.org/ - Mayfirst, based on Icecast and icecream, a web-based client, unfortunately non-free
- https://live.autistici.org/ - Autistici, an autonomous collective, hosted in Italy, based on Nginx and RTMP
For either of those tools, you need an app on your desktop. The
Mayfirst instructions use OBS Studio for the
stream.mayfirst.org
service (separate from live.mayfirst.org
), but
it might be possible to hotwire VLC to stream video from your
computer as well.
Text chat
When all else fails, text should go through. Slack, Twitter and Facebook are the best known alternatives here, obviously. I would warn against spending too much time on those, as they can foment harmful rumors and can spread bullshit like a virus on any given day. The situation does not make that any better. But it can be a good way to keep in touch with your loved ones.
But if you want to have a large meetings with a crazy number of people, text can actually accomplish wonders. Internet Relay Chat also known as "IRC" (and which oldies might have experienced for a bit as mIRC) is, incredibly, still alive at the venerable age of 30 years old. It is mainly used by free software projects, but can be used by anyone. Here are some networks you can try:
- https://web.libera.chat// - the largest network, Libera
- https://webchat.oftc.net/ - smaller network, used by the Debian <project, OFTC
- http://irc.indymedia.org/ - a relic of the almost defunct Indymedia network which I help operate
Those are all web interface to the IRC networks, but there are also a plenitude of IRC apps you can install on your desktop if you want the full experience.
Whiteboards and screensharing
I decided to add this section later on because it's a frequently mentioned "oh but you forgot..." comment I get from this post.
- Big Blue Button - seems to check all the boxes: free software, VoIP integration, breakout rooms, whiteboarding and screen sharing, works from a web browser, but difficult server setup, see this LWN review of the platform for more details
- CodiMD: collaborative text editor with UML and diagrams support
- Excalidraw: (collaborative) whiteboard tool that lets you easily sketch diagrams that have a hand-drawn feel
I'll also mention that collaborative editors, in general, like Etherpad are just great for taking minutes because you don't have that single person with the load of writing down what people are saying and is too busy to talk. Google Docs and Nextcloud have similar functionality, of course.
Update, public Big Blue Button instances:
- https://bbb.jitsi.rocks/ - also a Jitsi redirector, https://jitsi.rocks/
BBB requires one user to register to start the conference, but once that's done, anyone with the secret URL can join.
Common recommendations
Regardless of the tools you pick, audio and video streaming is a technical challenge. A lot of things happen under the hood when you pick up your phone and dial a number, and sometimes using a desktop, it can be difficult to get everything "just right".
Some advice:
get a good microphone and headset: good audio really makes a difference in how pleasing the experience will be, both for you and your peers. good hardware will reduce echo, feedback and other audio problems. (see also my audio docs)
check your audio/video setup before joining the meeting, ideally with another participant on the same platform you will use
find a quiet place to meet: even a good microphone will pick up noises from the environment, if you reduce this up front, everything will sound better. if you do live streaming and want high quality recording, considering setting up a smaller room to do recording. (tip: i heard of at least one journalist hiding in a closer full of clothes to make recordings, as it dampens the sound!)
mute your microphone when you are not speaking (spacebar in Jitsi, follow the "audio wizard" in Mumble)
If you have questions or need help, feel free to ask! Comment on this blog or just drop me an email (see contact), I'd be happy to answer your questions.
Other ideas
Inevitably, when I write a post like this, someone writes something like "I can't believe you did not mention APL!" Here's a list of tools I have not mentioned here, deliberately or because I forgot:
- Nextcloud Talk - needs access to a special server, but can be used for small meetings (less than 5, or so i heard)
- Jabber/XMPP - yes, I know, XMPP can do everything and it's magic. but I've given up a while back, and I don't think setting up audio conferences with multiple enough is easy enough to make the cut here
- Signal - signal is great. i use it every day. it's the primary way I do long distance, international voice calls for free, and the only way I do video-conferencing with family and friends at all. but it's one to one only, and the group (text) chat kind of sucks
Also, all the tools I recommend above are made of free software, which means they can be self-hosted. If things go bad and all those services stop existing, it should be possible for you to run your own instance.
Let me know if I forgot anything, but in a friendly way. And stay safe out there.
Update: a similar article from the good folks at systemli also recommends Mastodon, Ticker, Wikis and Etherpad.
Update 2: same, at SFC, which also mentions Firefox Send and Etherpad (and now I wish I did).
Usability evaluation
Update 3: the above article was written at the start of the social distancing measures in Canada, but has been surprisingly solid in terms of long-term advice. One thing I would have changed in the article would have been to order the tools somehow. Here's an ordering by usability, from easy to hard:
- Signal
- Jitsi
- Big Blue Button
- Text chat
- Mumble
- Live streaming
In terms of server setup, I would order it like this, again from easy to hard:
- Mumble
- Text chat
- Jitsi
- Live streaming
- Big Blue Button
Finally, local activists did a "virtual tour of autonomous spaces" last night and it was a great benchmark of how things work (or not). We tested the following platforms, in series:
- https://meet.mayfirst.org (Jitsi): audio worked well, but with delay. video performance was very variable: two people could not see others and their video stream appeared frozen to other. participants concluded they could not hold a meeting there. 14-15 people joined.
- https://8x8.vc (Commercial Jitsi): worked well overall. video quality was great, even with 14 people.
mumble.mayfirst.org
(Mumble): only 8-9 people managed to join, and it took over 15 minutes to get anything to work. so we lost about 30% of our participants. severe feedback and echo problems.- https://whereby.com (Commercial WebRTC service): worked well, but less so than https://8x8.vc/, with around 7 people.
- a private Big Blue Button instance: worked well with around 7 people, with 4-5 on webcam. tested breakout rooms, everything worked excellently.
Overall, I'm deeply impressed with the Big Blue Button user experience. For the targeted use case (workshops and online learning), it is excellent. Too bad the server setup is such a mess.
Sorry if this article is turning into a bit of a mess...
I just come here to inform about the GNU Jami. Here are the links: https://jami.net/ https://git.jami.net/savoirfairelinux/ring-project/wikis/technical/Build-instructions
I have not yet tested it exhaustively. But it may be a good replacement for Whatsapp or Skype or Duo. It's an well maintained project now.
This is all great advice, as always. I'm surprised that you didn't mention Riot/Matrix, given that you're the one that told me about it. (I'll admit I typically don't mention it either for UX reasons; I'm assuming that's why you didn't.)
In somewhat related news, some folks were talking about BigBlueButton (also FLOSS), which differs from Jitsi in that it does server-side encryption instead of of client-side. While that's worse from a security perspective, it won't start failing after a small number of users. I had never heard of it before so I'm assuming you haven't either. There's a demo site available too.
In a comment above I recommended Wire as an alternative. I have just discovered that they have been sold or moved to the USA. I shall now be checking out the alternatives suggested by others.
ThinkPrivacy article about Wire: https://www.thinkprivacy.ch/cutting-the-wire