Building a Decentralized Twitter by Forking Mastodon

Decentralized Twitter is coming to blockstack.

Lots of dedicated community members are working on this and I’m confident we’ll make some pretty amazing progress over the next few months.

Shout out to @cryptocracy and @atd for all the incredible work on this.

In my view, the best way to approach this problem is to take a quality federated design and decentralized it.

Mastodon is perhaps the most notable project that fits the bill, with everything from open source servers to open source desktop clients and open source mobile clients (like Amaroq on iOS).

There’s a growing ecosystem around Mastodon and it’s clearly shown that it has potential.

In order to decentralize Mastodon, one needs to fork it and update it so that identities and data are not tied to a single host server.

This involves the following:

  1. A username resolves to a given host server.

  2. All tweets are backed up on both the host server and the user’s Gaia drive.

  3. A user can move from one host server to another seamlessly by (a) updating an entry in one’s Blockstack profile (b) uploading a zip file of tweets to the new host server.

Here are some additional implications:

  1. If your host server goes down or goes away, you can instantly migrate and your account will be unaffected.

  2. Your username is not tied to a given host server.

  3. Host servers will be completely commoditized, so users should no longer be concentrated on one or two of them.

  4. You’ll be able to configure your mobile device to talk to the host server you’re currently using.

These are some of my early thoughts on this and I’d be happy to share more. Let me know what you think.

Are you thinking of keeping compat with gnu-social?

I like your suggestion of switching over to simple JSON. I’d make the same call but it seems like a detail that will be left up to those developing this.

Hey @ryan, we have decided to use Mastodon, as a model, not a fork in the typical repo sense, their code under the hood is a train wreck :wink:

@danmademe not entirely sure about ALL the gnu-social standard features, did you have specific ones you wanted to ensure were included?

2 Likes

Hey @ryan, we have decided to use Mastodon, as a model, not a fork in the typical repo sense, their code under the hood is a train wreck :wink:

Makes sense. Nice that you’re using them as a model and avoiding the mess!

Excited to join in on the next meeting.