By Ev Bogue - November 19th 2016
A month or two ago I got an invite to a Slack channel from someone I know from the San Francisco 2010 era. The idea for this Slack channel was to create a community for independent workers (aka freelancers).
Since I'm working on distributed technologies, I initially resisted the idea of joining. But I hadn't used Slack in a long time, so I figured 'why not give this a shot and see if there is anything to learn from what they're doing at Slack?'
After joining I was initially a little puzzled by the whole thing. A few questions occurred to me:
Then I remembered that one of the first things I did when I got off centralized social networking was switch to IRC for my social needs. This is how I ended up hanging out in IRC channels such as #stackvm #lesswrong #cat-v and #cjdns. Humans want to socialize over the Internet, but how they're going to do it is a big question. And somehow Slack seems to take advantage of that question.
IRC is cool, but it's an old application. I'd rather use IRC on my command line than in a GUI, because many of the GUIs are so old looking that I feel old beyond my years.
I realized Slack is really just an IRC GUI -- but instead of being for IRC (where the data isn't owned by anyone) they instead decided to go the Facebook/Twitter/Google model and own everyone's data. Slack is a huge step backwards if you think about it as an alternative to IRC. And in some ways it's a step forward, because the GUI is so slick that it would make IRC cry with envy if it could look that good.
But what is the social need that Slack is capitalizing on here? Why are people using this Slack thing and not just sticking with old skool social networks such as Twitter and Facebook?
After a few days of using Slack it occurred to me: a Slack network has a different shape. Instead of appearing global, a slack network pretends to be local. Because a Slack network is smaller, and the channels tend to have one admin, there's a sense of ownership over a Slack channel that people have lost with FB/TW -- because it's obvious now that those companies are harvesting user data and you're just there to get advertised at.
It's obvious that Slack is harvesting user data too, so it's a huge bait and switch if you believe that 'your slack channel' belongs to you. It doesn't, it belongs to a company named Slack. You're just another metric they're going to send to their investors when they attempt to get their series C round, before hoping they can dump Slack on FB or Google before they run out of money. Anyone at Slack can pop in without being seen and monitor what you're saying in your Slack channel. (And they can probably do so without that annoying presence light switching to green).
Then I got to thinking, since I'm involved so heavily with Scuttlebot, can I create a similar network shape to Slack with Scuttlebot? And the answer is 'yes, I can'. You can create alternative Scuttlebot networks by changing the application key. This feature was initially designed for testnets and breaking protocol changes. However, you can just as easily change the network key and get the open-source equivalent of a distributed verson of Slack.
You might say at this point: well couldn't a socket.io chat room be the same thing as Slack? Yes, that's true. However, I believe that Slack has more elements of a social network than a chat channel. It has persistent identities, persistent posts, and also you get to pick a username and upload a photo. While you could create a Slack alternative with a socket.io chat channel, I think Scuttlebot fits into the same part of the network stack as Slack more easily than a socket.io chat channel.
Also, it occurred to me that Slack has user invites. This means a Slack channel is invite-only, and everyone is authenticated into your Slack 'network'. This is different from most chat applications, where pretty much anyone can join (and thus you get all of the 'benefits' of anonymous people joining your channel.)
This leads me to the biggest beef I have with Slack: the presence light. I think it's awful because you can tell who is active in the channel and who isn't. But I've noticed that the owner of the channel is rarely present, instead deciding to duck in and out of the channel for only brief moments. I'd do the same thing, because I'd feel creepy hanging out in a Slack channel all day -- when really I have Sbot open in another tab and I'm focusing on that most of the time. If there was a presence light on Sbot, I'd pretty much always jump the talented programmers of Sbot when they are on -- and then they'd never get any work done. If there's anything I think Slack has done wrong, it's the presence light.
Having done all of this socialogical research on a Slack channel, I decided to fire up the open source equivalent on my website. But instead of Slack owning my channel, I own it.
I created a new VPS and installed Sbot, changed the network key to a new secret network key. This keeps the Sbot network I run on my VPS from syncing with the main global Sbot network that everyone else is on.
And so far so good. Now I have my own distributed social network. I see it as a chatroom for my website, and a lower pressure way to get to know the Sbot network before joining the main network.
There are all sorts of benefits to the sbot altnet:
Now I gotta eat some pizza.