Is a post-Facebook world is coming? As opposed to the centralized, single platform approach that Facebook takes to operating a social network, some in the tech space including Wikipedia co-founder Dr. Larry Sanger are declaring digital independence and advocating for the decentralization of our social data as the antidote to Facebook's control and increasingly worrisome behavior. Meanwhile, others, such as Salesforce co-founder and co-CEO Marc Benioff see no alternative but to quit. Referring to Facebook as "the new cigarettes," Benioff has called for the regulation of Facebook the way tobacco companies are regulated (Disclosure: MuleSoft, the parent company to ProgrammableWeb, was acquired by Salesforce in 2018. Neither parent was involved in the development of this three-part special report).

While a series of privacy transgressions and critics are keeping Facebook in the headlines in a very unflattering light, dissatisfied users are left with the question of not only how to quit the service, but how to first get their data out of it so it can be used somewhere else. For its part, Facebook offers users a way to download their data and even advertises the functionality as useful should they wish to import it into an alternative service. Suggesting that it altruistically allows users to quit the service in favor of an alternative, the settings area of a Facebook user's account clearly states that "You can download a copy of your Facebook information at any time... You can choose to receive your information in an HTML format that is easy to view, or a JSON format, which could allow another service to more easily import it."

As the dissatisfaction with Facebook grows, ProgrammableWeb decided to put the veracity of that claim to the test. In part 2 of this series regarding the ease or lack thereof with which our Facebook addictions can be broken, we investigated what it actually takes from a technical perspective just to move your data out of Facebook and make that data useful and usable, either in some standalone format on your device (PC, smartphone, tablet, etc) or in an alternative service to Facebook. Thus begging the question: if we could actually export all of our data and its context from Facebook (a valiant effort that was met with limited success), where, if anywhere, can we move it to?

Now, with the veracity of Facebook's export claims having been somewhat debunked by our tests, in this third part of our series, we take a look at some of the more noteworthy social network alternatives to see if they'd work as Facebook substitutes should the export situation improve,

Putting Users in Charge of Their Data

A handful of new social platforms are emerging against the backdrop of a changing Internet: an Internet in which users and government regulators who are increasingly concerned about privacy seek to put consumers in more direct control of their data. In this article, we dive into what this new web looks like and how it impacts online social networks. We profile some of the major alternatives to Facebook, decentralized and otherwise, and explore whether any of them are viable substitutes should you choose to leave (taking with you the sub-optimal collection of data that Facebook offers as a parting gift).

The New Personal Data Landscape

The passing of the General Data Protection Regulation (GDPR) in the EU was a major milestone in rights around personal data ownership with far-reaching consequences across the web. Many people associate GDPR with the barrage of notifications about cookies and privacy policies that started appearing in their web browser in May 2018. Furthermore, ProgrammableWeb's readers may associate that legislation with a good forecast for the API economy. One of the greatest effects, however, was that it laid the groundwork for average users to begin to understand the issues surrounding personal data ownership and privacy.

With greater understanding—and more security breaches and data leaks—has come greater demand for privacy within existing platforms and better tools and platforms to empower users to truly own their data. True personal data ownership and control, however, requires more fundamental shifts in how users interact with the web. Rather than storing your data across all the different websites and products you use and being at the mercy of those companies' fluid decisions about privacy and data sharing, maybe you should own your own data and grant access to it on your terms. Technically speaking, this could look like having your own personal data cloud, and by extension, your own personal API so that, with your permission, other applications could read that data, but only when those applications are used by users you've approved (ie: your friends).

Some organizations are already trying to tackle this personal data cloud concept. The for-profit company Cozy, based in France, aims to give you full control over all your data by storing it in your own private cloud and providing apps, such as photo or finance software, that you can use with your personal cloud and trust that your data is not going anywhere else. The open project called Solid, by Inrupt and Sir Tim Berners-Lee, creator of the World Wide Web, takes a similar approach: users can create what's called a "Solid POD" hosted on a server of their choosing (in essence, is their personal cloud) and plug it into an ecosystem of apps that access only the data they have permissions for. Both Cozy and Inrupt provide documentation and APIs for developers to build their own apps.

The word to describe this architectural approach to data ownership and interoperability is decentralization. In contrast, we currently exist as users in a centralized internet: you give your data to external companies that are considered centralized authorities who own that data and govern it with their own privacy policies and third-party sales agreements. While you may use multiple different products owned by different companies, "centralization" occurs when, within each product, the company is the single, complete authority over all the users and their data. In a decentralized world, individual users that use a product can have authority over their own data within that product's realm.

Instead of having centralized entities like Google or Facebook that control the storage and flow of information, you, the user, have control over your data and what non-central entities it goes to. You no longer need intermediaries, and you're no longer locked into closed, proprietary systems because you can directly connect with the people and products you want to. Of course, to do this, you need standards for information exchange and interoperability. Email is the best example of this: if you use Gmail, you can send emails to people using Yahoo Mail or even those who host their own email servers, because all email servers understand the same standard email protocols (e.g. the Simple Mail Transfer Protocol aka SMTP).

When it comes to social data, the World Wide Web Consortium (aka the "W3C", the standard setting body for the web) is working on standardized protocols to help advance the idea of the decentralized social web (again, the antithesis of a centralized service like Facebook). The primary client/server protocol within those efforts is called ActivityPub, and it is accompanied by a number of other protocols for notification delivery, social data vocabulary, etc. Solid is using these protocols, and new products are emerging that also use them in their attempts to provide online social network experiences that are similar to existing platforms such as Twitter and YouTube.

Alternatives to Facebook

The elephant in the room—the trillion dollar question so to speak, given what's at stake—is whether any of the current offerings are worthy substitutes for the Facebook experience. Or any of the other centralized social network platforms for that matter. Several startups, Ello for example, have tried to no avail to capitalize on the emergent dissatisfaction with Facebook by launching competing platforms. Of the social platform alternatives that remain, here's what we found.

Personal Data Clouds

Personal data clouds like Solid PODs or Cozy aren't intended to provide a social networking product similar to Facebook or Twitter; instead, their goal is to provide a central, user-managed location for all of one's data, which can then be plugged into social products or platforms. They're an important part of the decentralized social web equation, because they help you as a user store, manage, and grant access to all types of data in one spot. Without a personal data cloud, you would have to manage your social data across multiple servers or products. This would be burdensome and, from a practical perspective, not much different than having our data locked away in the current ecosystem of closed, unconnected products.

Cozy

Cozy has been around since 2012, with the mission of providing "an intelligent, decentralized and secure storage space" for users to manage their data and connect to various apps and services. It's a user-focused product, with a clean UI and mature feature set. However, the exception to that is that it lacks social data integration. There's no Cozy app or connector available yet for social network products, decentralized or otherwise and there's no support for the nascent ActivityPub standard.

According to a Cozy spokesperson, the company has been in the process of getting their app approved by Facebook for months in order to give users the capability to import Facebook data with an initial focus on photos. Until that happens, if you want to import your Facebook data, the only place you can store it in Cozy is in Cozy Drive as a folder containing raw data files. In other words, currently, it's not useful for as a tool to import or browse our Facebook data or as a host for connecting our Facebook data to decentralized social networks.

Solid

Kicked off by Sir Tim Berners-Lee and MIT in 2015, Solid is newer than Cozy. Its feature set is still nascent, and the UI leaves a lot to be desired, especially compared to Cozy. To be honest, in its current state, the UI is almost unusable. The Solid user guide on Github doesn't help much, and, at the time of publication, not all of the features covered in the guide were functional when you run a Solid server locally or with a Docker image in the cloud.

However, whereas Cozy is user-focused, Solid is technology-focused. Solid's vision is that every person has a personal API on top of their personal cloud (called a POD in Solid parlance), and that API uses linked data and open standards for data exchange.

While full functionality and standards adoption is far out, Solid is on the path to interoperability and decentralization by making linked data and RDF (both of which are integral to the Semantic Web) its foundation. Solid is still very much under development. But it has the most potential to be the de facto personal data cloud provider for a decentralized web.

Alternative social network products

Currently, if you want to move your Facebook data to a personal data cloud before joining another online social network, you're in for a challenge. A more viable path might be to start by migrating to a different social network first while the personal data cloud landscape matures. Eventually, those products should offer integration with other social platforms, especially in the case of Solid and other decentralized social networks.

But, of the decentralized social networks that are currently out there, which one should you move to? The answer isn't easy. We've profiled four different products with varying levels of openness and interoperability to help you decide.

Mastodon

Consisting of a network of independently operated servers, Mastodon is a decentralized, ActivityPub-compliant social network project that is most directly similar to Twitter. You can join any Mastodon server by searching on the Mastodon homepage for one with a community that fits your interests, or you can host your own server. Once you have an account on a server, you can follow any other account on any other Mastodon server, not just the server you've joined. To interact with other users, you can post a "toot" (akin to a "tweet"), follow users, reply to toots, favorite toots, use hashtags in your toots, etc.



The UI reminds me of Tweetdeck: a combination of Trello-style lists with Twitter functionality. Because users can build their own Mastodon servers and applications, they can customize the look and feel. Different servers, therefore, have different color schemes and sometimes even different language on the buttons. This may sound like it could get confusing, but there's enough consistency that you don't have to relearn the entire UI. The result is, in my opinion, a fun and quirky experience that feels much more unique and personal to my own community than Twitter.

But if we're looking for some place to migrate our Facebook data to, Mastodon is unfortunately not that place. Mastodon is definitely a viable alternative to Twitter, but not to Facebook, just as Twitter isn't a real alternative to Facebook. The features that make Facebook such a complete social experience, such as events, public and private groups, photo albums, etc, simply don't exist on Mastodon. We could migrate our Facebook activity feed to Mastodon as a feed of toots, but we wouldn't be able to import photo albums, event data, or richer metadata about the toots such as group visibility settings, since everything has the same visibility on Mastodon.

PeerTube

PeerTube is a decentralized, ActivityPub-compliant project that is most similar to YouTube. As with Mastodon, you get started with PeerTube by joining a server with a community that matches your interests or by creating your own server. From there, you can search for and watch videos, post your own videos, and perform social interactions such as upvoting or downvoting a video, subscribing to a channel, sharing a video, or leaving comments.

PeerTube might be a great alternative to YouTube and could be a good place to migrate our Facebook video data to, but it would not be a good place for our Facebook activity feed data.

Diaspora

Diaspora also seeks to build a decentralized social web, but it doesn't appear to use ActivityPub or related protocols for federation or interoperability. Once you create your own server (called a pod) or join an open Diaspora pod, you can search for content using hashtags, view an activity stream from people you do and don't follow, add contacts, and post text updates and photos. The UI is not as nice as Mastodon's, but it does have some Facebook-like functionality that Mastodon doesn't; primarily photo management and private conversations. Unfortunately, at the time we wrote this article, Diaspora did not yet have an API or a data import function. So there is no way for us to move our Facebook data in any format to an account on a Diaspora pod.

Ello

Worthy of honorable mention, the aforementioned Ello made a lot of noise when it launched in 2014 as a competitor to Facebook that promised never to sell your data to advertisers or show ads on its platform. Also, unlike Solid, Mastodon, PeerTube, and Diaspora, it does not take a decentralized approach. Since its launch, the platform has pivoted away from being a broadly targeted privacy-focused social network for everyone to a platform for artists and creative types to connect and showcase their work. The company still maintains its focus on privacy, but it hasn't hopped on the decentralization train. Surprisingly, it also doesn't offer an API or developer portal, although you can integrate with the app using RSS or IFTTT. Therefore, there doesn't seem to be any way or motivation to move our data from Facebook to Ello.

Building an open, decentralized Facebook alternative

Sadly, none of the above profiled social network products are complete Facebook alternatives for us to migrate to. Arguably, Diaspora has the most overlapping functionality but lacks the sort of migration path that Mastodon offers: using a tool we developed called Salvager, we can export Facebook data into an ActivityPub-based JSON-LD collection which in-turn, is interoperable with Mastodon. Photo management, messages, groups, and fine-tuned visibility for posts, however, would be lost.

If we want to truly leave Facebook, keep all of our social graph data, and migrate to a new platform with Facebook-like features, then right now it seems the only option would be to build our own. The features that such a platform would need include:

A universal mechanism for user lookup: A specification that already exists and which Solid uses is WebFinger. WebFinger enables a user to be queryable and described as a standardized JSON resource living at a URI, meaning that user information is discoverable and machine-readable

Decentralized interoperability via the ActivityPub standard

Easy integration with existing or emerging personal data cloud solutions such as Solid Pods, Cozy cloud, or tools using the remoteStorage protocol

Ability to customize permissions and visibility and describe those permissions in the messages. Permissions should be straightforward to understand and should have some notion of "groups" of users. This could be accomplished with an extension to the ActivityPub or ActivityStreams specs

Pub/sub capability for users to share updates across the federated platform. Even if we were to continue using Facebook, wouldn't it be awesome if you could set up an outbound RSS or ActivityPub feed for your updates for approved subscribers?

Entities—both in the product and in any API spec—for groups, business pages, events, and expanded profiles

Photo management features, including album organization, user tagging, location tagging, and ability to link photos with other activities such as updating your status

It might be the case that Facebook has too many feature sets and use cases to replicate well in a single alternative product. Facebook tries to be the only social platform you will ever need and gobbles up its competitors (ie: Instagram) and integrates them into the Facebook ecosystem in order to ensure you never have to leave. Building a good product that could tempt all users—including such widely differing types of users as those using it just for sharing photos versus those building their brand versus those using it just to find events in their area—away from Facebook might not be feasible without serious capital.

But then again, if we build a decentralized social web, then no single platform needs to serve every single use case. We may just need more decentralized social apps using ActivityPub that target individual use cases, as well as products that create delightful, seamless experiences integrating various ActivityPub feeds.