Example-- building a centralized Facebook replacement is doable. Some idealistic developer can sit down one summer, break the problem into little pieces and iterate on it. If enough other developers and investors get interested, they can throw money at it to make it scale and attract a non-trivial userbase.
Building a decentralized Facebook replacement is simply not doable. An idealistic developer can sit down one summer, break the problem into little pieces but not all of them have viable solutions. I.e., how do you do discoverability? And more importantly, how do you do discoverability in a way that justifies the expense of decentralizing-- e.g., how do I query an untrusted node and receive an answer without that node knowing what I was searching for? The only extant solution I've seen on that is from Gnunet. And it doesn't do stemming or partial matches, so it's quite brittle and untested.
I think it's important to keep reminding people to describe the current decentralization efforts as an open research problem. Otherwise people get it in their heads that decentralization always has a particular set of inescapable costs, and not all of them are inescapable.
Edit: clarification
Something can be decentralized without bleeding edge p2p crypto tech.
So what good does it do to push discoverability to the company that is currently vacuuming up all your searches and browsing history?
edit: typo
So what will happen that drives the adoption to scale? In other words, what is the Mastodon's decentralized equivalent of investors throwing tons of money into marketing a centralized Facebook competitor? (I'm wrongly assuming that centralized means proprietary here, but I already made that wrong assumption above so I'll stick to it for the moment...)
So I'll echo what was said elsewhere: people aren't going to move and abandon their old social networks, at least in my opinion.
I'd much rather play around with some slick, futuristic-looking UI with stop-gap business logic behind it just to garner an idea of what would be possible if we had better decentralized platforms. How about a nice simple interface to choose N trusted friends to help me archive my posts? How about simulating a ransomware attack, then leveraging M/N friends to set up the account on a new device and having the system estimate how many posts the ransomware could access? Actually how about one that replaces passwords with M/N friends?
I'm probably being unnecessarily conservative in my ideas because I'm still stuck on our current technological limitations. The point is that if all the "alternatives" developers had been doing stuff like that instead of ineffectual Facebook/Twitter clones, there would probably be a lot more value in all that effort since the Snowden leaks.
We need a well designed pretty home server that's as easy to set up and use as a smartphone. That's all, really.
The killer app would be ultra fast backup from your phone and laptop over a local network that subsequently drips over the internet (encrypted) to a friend or family member's home server.
Then, just put an app store on top. An ecosystem around that would spring up with all sorts of stuff that would sometimes be worse and sometimes be way, way, better than the centralized web. Any facebook equivalent would probably be way better.
I kind of wish this was what Mozilla was getting in on - it's way more disruptive than building Yet Another Smartphone/Desktop OS.
Most of the software to do all of this is actually already there, it just a matter of putting it together in an easy to use way and putting some lipgloss and snazzy marketing on it (not necessarily an easy task but very doable all the same).
It's worth remembering that smartphones were pretty uncool, nerdy and uninteresting to 'normal' people in 2006.
What do you do about all those people whose ISPs don't allow them to run public facing server on residential connection?
I have a lot of capability now in SubNode, but it doesn't yet 'federate', beyond what the JCR can do insofar as storage distribution. However it does show what an internet 'could' be like if most everything was build out of 'SubNodes'... or at least in the area of Social Media, having this kind of open standard would revolutionize the internet, and make Facebook and Twitter look like Bell Telgraph: You know, the old, unneeded, proprietary, manipulative, 'sell your data to the highest bidder' type of social media that the world needs to get off of.
> The tension/problem as I see it is this: we need distributed networks, where people run their own services, and are servers as well as clients, but at the same time a large proportion of people do not or cannot run their own services. Solving that problem seems key to me--have people act as servers without realizing it (maybe something like with torrents).
I think this is spot on. In case you haven't come across it already, IPFS is trying to do this, and already works today for many applications.
This talk is quite good if you have an hour to spare: https://www.youtube.com/watch?v=jONZtXMu03w
https://ipfs.io/blog/24-uncensorable-wikipedia/
I think the biggest thing they're going to struggle with for adoption is their addressing system, which is brilliant from a technology point of view, but impossible to memorize for regular humans. Some sort of naming system (or, ideally, several such systems) needs to emerge I think, before the network will be properly usable by casual folks.
Here is an IPFS path to my blog: /ipns/jes.xxx/
No longer than the corresponding HTTP version: http://jes.xxx/
Of course, DNS isn't distributed or trustless, but if it can work with DNS it can work with the likes of Namecoin or ENS (https://ens.domains/).
Currently you need to prepend an IPFS gateway URL to the IPFS path in order for it to be backwards-comaptible with existing browsers (e.g. https://ipfs.io/ipns/jes.xxx/), but I don't think it will take too many years to get native IPFS support in browsers.
I'm really really excited by what's going possible already, and what's going to become possible soon, with IPFS.
We already have a model for this: email.
You and I can use whoever we want as email providers, including hosting our own, and if you don't think I'm a trustworthy provider, you can drop my messages.
The system isn't without it's corner cases, but it's certainly proven to be a robust model over the last ~30 years.
The only thing it requires is standards. We already have one for facebook messenger: XMPP. Facebook and Google used to support it, but they both shut it down because they wanted to lock their users in harder. We have CalDav for events, but again, none of the big players want to know about it.
We could have a "social status" standard, allowing you to send a robustly versioned life update to other servers from whatever social service manager you'd prefer, but you and I know that no amount of user outcry could persuade any of the major players to adopt it. Network effects, peer pressure and social expectation (e.g. please submit a snapchat along with your job interview) power their meteoric growth.
What we need is a "Regulating the Gauge of Railways Act 1846" for the digital age. We need international bodies to review software that has become mandatory to the modern world, distill it down to a set of living specifications, and then ram it down the throats of software vendors.
Come to think of it, you could build a Facebook, Instagram, or Twitter clone on top of email pretty easily. All it would take is a slightly reimagined client. Just whitelist addresses of people you "follow" and display their emails in a separate, more visually rich feed (e.g. automatically downloading and displaying images). Make the UI/UX of "posting" an email to your feed feel more like composing a social media post (e.g. "post a photo" instead of "add an attachment"). You could have a separate inbox for emails from people you weren't following/connected to, which would be just a traditional email inbox.
On any of the platform, there's only so many ways you can format a post. Facebook for example lets you do plain text, dress it up a bit, or attach some piece of content with optional text (a photo, video, or site embed), and then presents your post in a standard way after that.
It seems restricting when I put it all down on paper, but that restriction is downright liberating when you want to get something out quick. Choice can be overwhelming, and for better or worse, the lack of freedom in Facebook's post editor makes it much easier for folks around the globe to pick up and use. Email won't ever have that, and that's okay! Different tools for different jobs.
I agree that restrictions are often liberating, and likely played a role in the success of the big social networks. But I disagree about email not being able to have the same kind of restrictions. It absolutely can. All you need is an email client that controls what you can put in the email body when you're composing an email. Most email clients allow pretty free-form messages - from plain text to hundreds of lines of HTML. But they don't _have_ to.
By the same token, there's nothing in HTTP or any other internet protocol that restricts the content of a Facebook post. Those limits are imposed by Facebook's clients (and presumably APIs).
Email has a widely understood delivery protocol and identities. That's really all you need to let people publish and subscribe to each other. The rest is just UI and marketing. (Which, of course, is no small feat!)
I think we already see some of these things to some extent like Github pull requests having a lot of usability via email.
On the receiver or "follower" side of things the client would filter emails coming from addresses you follow into a separate social feed box. All your other emails (e.g. from other random people, or the notification that the shoes you just bought online have been shipped) would be displayed in your standard, traditional inbox. Your list of actual, non-social-update emails would never be polluted by all the noise from your social update feed.
On the sender or "poster" side of things when you post something it would just send emails to your list of followers. Presumably all these people are using clients that are designed to filter the emails into either the social feed or the standard inbox. So you'd never end up spamming people with photos of your lunch on a Greek island with people who haven't signed up to see it.
Of course, it could get tricky if, say, [email protected] is following [email protected] and bob wants to send alice a plain old email that isn't part of his social feed. Using headers, as suggested above, could be great. Or maybe the social feed would be set up as a mailing list, and posts would go through a reflector address. Or else, maybe people would just set up a new email address from which to send posts to their network?
Or, maybe I'm misunderstanding your question?
I dunno. I haven't thought through everything, but I'm pretty confident that existing email infrastructure has all the raw material you'd need to build a workable social network.
My main question is how to support both direct and indirect (via a "social" client (as if email wasn't social)) usage in a sustainable fashion. Otherwise I don't see it gaining traction.
I'm not sure how much of a chance it would have of succeeding (I'd like it, but would anyone else?). One thing that gives me a bit of hope is the rising popularity recently of email newsletters on specific topics or from specific writers/thought-leaders.
It may, because it doesn't have to build it's own network effect, it can piggyback on emails existing userbase, which is basically everyone.
I was talking with my housemate, we came up with the idea of a combination push and pull following mechanism. I can offer you the option to follow me by sending you a mail with the X-SOCIAL header and a "follow offer" header content, plus a really simple mail body that says "hey, substance just asked you to join their social updates list. it seems you don't have a social client, <click here> to get one". If you've got a social client installed already, the body gets hidden and you get the follow offer in your social client.
However, you could also send me a mail with the X-SOCIAL "follow request" header, and a similar introductory body: "Hey, skewart wants to keep in touch with you via social mail. Download a social client <here> to connect with them". If I have a social client installed, I get a friend request instead.
The great thing is, your email inbox has a timestamped record of all these requests, so it's like a somewhat unreliable replayable social history, which means if I don't have a social client, I can read the introductory body, go grab a social client and come back, and it will re-parse my inbox and offer me the same follow request, no need for you to resend it.
God damn it, now I like this idea.
Man, now I want to build this thing.
[1] https://www.w3.org/Social/WG
Any distributed system will need to figure out how to deal with spam and abuse. That's hard to do without there being a dedicated team to deal with flagged messages.
Moderation ends up becoming an awkward balancing act between not completely restricting freedom of speech and stopping trolls/bullies flaming the hell out of anyone they disagree with while simultaneous trying to make it scale. Which is perhaps even harder than determining between what's free speech and what's a threat/harassment.
If someone can come up with a social network that doesn't discriminate between people from different backgrounds/with different political stances while filtering out actual trolls and which manages to do this on a large scale without a huge team of human moderators, then they'll likely pose a massive threat to the existing sites in the market.
The current state of social networks vs email is night and day. I would never host my own email (despite self-hosting almost all my other online services) because the anti-spam techniques in wide usage are so punitive if you get your config wrong (your IP and domain basically get permanently sin-binned), but I use gandi.net as my email provider, I'm able to choose to pay them money and in exchange get my mail handled by someone I trust.
I'd gladly pay to use facebook, but run by someone I trust. However, social services are centralized to such an extreme even vs email that I actually cannot pay to have secure and respectful social networking, as facebook has successfully locked everyone else out of the game.
I digress. Email is not perfect, but it's a hell of a lot better than social.
It's like saying 'why worry about these problems, just don't don't use the the internet at all.' I still like paper books and other things and usually spend a day a week off the internet but that doesn't help anyone who's trying to solve an internet problem, does it?
It's not how email works either.
Its main value-add at this point is discovery and messaging by real name and social graph (you can find people you met in real life but don't know well enough to exchange phone numbers).
Secondarily, it's a long form town-hall forum on, for example, campus-specific pages where students discuss goings-on and outrage-of-the-week.
In distant third, it's a way for people to broadcast content to their followers. Really only important life milestones, travel photos, and political outrage are socially acceptable here.
Website publishing is barely even used anymore. No one fills in a public profile. A specific person's Facebook page is just a WHERE clause on the larger News Feed.
At least, these are my observations as a Millenal going on 10 years of Facebook membership.
Which reminds me. Why are all these decentralised/federated services focusing so much on trying to replace Twitter?
I mean, maybe it's a silly question, but replacing Facebook, Instagram, Reddit or any other number of services would be just as valid a goal. Why is every one of these systems seemingly going for the microblogging market in particular?
Because OStatus is tailored for microblogging
cloudron.io is tackling this very problem. sandstorm was trying to solve this as well but the project is not active anymore.
Looks pretty active.
See also: https://sandstorm.io/news/
I guess diaspora* is supposed to be the decentralized facebook replacement, but I don't think it's any good. I dare say that it's too late for even a good replacement to compete with facebook. Google tried while there was still time (and failed). But now? I don't think you can.
Google hasn't had a great track record with these things in general. The problem with a lot of Facebook alternatives is that they make a somewhat better Facebook and then hope everyone will switch over. Of course that's going to fail. Sites that succeed have reasons for people to use them even if there aren't mass migrations.
We know that people have a need for social sites other than Facebook. Slack's been successful, so has Discourse. Heck, meetup.com is still going even though by a naive understanding of things Facebook should have subsumed it (it has a much smaller base, and you need to pay something like $140 a year if you want to start a group). A Facebook alternative will eventually catch on, but it's not going to be a site that starts out by trying to mimic Facebook with a few extra bells and whistles attached.
I think something like Opera Unite had the potential to be a single instance per person if that ever caught on.
A charity? Sure, if you can make it work. But a public utility? That would link it to governments, which I think is the last thing we should be pushing. I think there is already enough concern over how Twitter interacts with governments, especially those looking to censor speech. https://en.wikipedia.org/wiki/Censorship_of_Twitter
The people in the offices are too dumb to even grasp what servers are, let alone distributed services or why would standards be beneficial for the society. Maybe next generation knows better if we by then are not under the iron rule of few SV companies.
I think it's not just an alternative to Facebook we need, it's a distributed paradigm, with a distributed network, with distributed services.
The tension/problem as I see it is this: we need distributed networks, where people run their own services, and are servers as well as clients, but at the same time a large proportion of people do not or cannot run their own services. Solving that problem seems key to me--have people act as servers without realizing it (maybe something like with torrents).
The success of things like Facebook and Twitter has never seemed like that much of a mystery to me: they basically allow people to have a web page without needing to make one. There was MySpace that did that, and then people wanted to add on privacy and discussions, etc. to their webpage, so Facebook supplied that; Twitter was basically providing a way for people to post rss/Atom feeds, etc. But then you cede control to these large providers.
I don't think that model completely applies anymore, with messaging, photo sharing, and what not becoming so integrated, but I think the fundamental issues are the same, in that that the internet was developed with a greater ratio of providers:users in mind than is the case now. I think there was a much more federated model in mind when the internet was developed than is the case today.