Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: A new decentralized microblogging platform (github.com/gargron)
364 points by gargron on Oct 5, 2016 | hide | past | favorite | 146 comments

Nice! I was preparing myself for a rant against yet another proprietary "decentralized" platform, when I read that this is GNU Social compatible :-). This is great, maybe some more (compatible) competition will do the network good. The current offerings like GNUsocial are not quite as polished as e.g. Facebook and Twitter.

One little suggestion, I can't see anything of your network when I visit the main page. I'm hesitant to sign up for something if I can't see it. Maybe you could add a list of users of the instance / network, public tweets, etc. Or even better, publish a link to a (public) profile, so users can get an idea what it looks like in use.

(If I'd make a federated microblogging / social network site, I would center it around the profile page. I'd make it at first glance less about networking and more about presenting yourself. Like the early Facebook, or MySpace. This way, a user has an incentive to sign up even if no or only few friends are on the network yet. You'd be able to customize your page a lot, leave contact data, write (micro) blog posts, have a wall (guestbook) etc... And almost incidentally you'd be able to use your identity to comment on GNUSocial, use XMPP, OpenID, ....)

Here is my profile: https://mastodon.social/users/Gargron

I also made a demo video (linked in the README): https://www.youtube.com/watch?v=YO1jQ8_rAMU

I realize that a public timeline would be a good addition.

@daveid, are there instructions on how to get Mastodon running without Docker? Very nice looking app, thanks!

It looks like a standard Rails app, so you should just be able to clone the repo and google the rest.

Re GNU Social polish, have you seen the frontend Qvitter? Eg https://quitter.se/ and repo at https://git.gnu.io/h2p/Qvitter

> Nice! I was preparing myself for a rant against yet another proprietary "decentralized" platform, when I read that this is GNU Social compatible :-).

Same here, but I stopped because it looks like a better version of Twitter. I'd use this interface any day of the week! Now we just need FSF to host it and provide a mobile version that works on free devices... and we need free devices... and my internet needs to be free... and the whole network needs to be free...

The interface reminded me very strongly of Tweetdeck.

absolutely right. If it shouldn't be a walled garden the entry shouldn't be walled. Would be cool to see like a list of most popular users or a list of most recent posts or something.

Why do we keep building centralized "decentralized" services to replace entrenched centralized providers? What hope of victory is there against the Twitters and Facebooks of the world? They already own that space! They aren't going to be disrupted by Yet Another Twitter Clone.

Disruption means doing something that your competitors are effectively incapable of doing.

This isn't a startup, it's an open-source project. Most likely the Twitters and Facebooks will win, but people should have a viable choice... Plus this is an incredibly fun project to be working on, to be quite honest.

I kind of think of imminent battle between decentralized/centralized as analogous to the Linux/Windows wars of yesterday. Over the short term you're probably right that centralized services will win. But because decentralized services yield control of your data, they have the potential to be so much better for the consumer than centralized services.

I'm not criticizing the project or the personal enjoyment you derive from working on it. Keep it up. Not everyone wants to make it a fight, and I respect that.

Personally, I live for the struggle.

Their USP, which Facebook and Twitter can never compete with, is self-hosting. Multiple companies could set up, some with ad-free paid options, others funded by advertising. And if you don't like those options, you can host it yourself for you and your family.

I think that's a worthy goal, though I'm not convinced it we'll achieve it because of the amount of money the vested interests can throw at preventing it. But it remains a good idea, even if it never becomes mainstream.

> Multiple companies could set up, some with ad-free paid options, others funded by advertising.

OK. But why would they? What is the raison d'etre for such a company to exist? What is the competitive advantage here for those companies to actually do that? How does this not turn into a hilarious race-to-the-bottom that zeroes out any reason for anybody to do it in the first place?

I am profoundly unconvinced that you're going to ever beat a Twitter or a Facebook and it's not because of "vested interests preventing it", it's because the current options meet the needs and desires of the userbase. The size of the group that cares about self-hosting something like this is within epsilon of zero percent. Because nobody cares, there is no network effect to pull other people.

It turns into a utility, like Wikipedia, or OpenStreetMap. Not all that provides value generates profit, hence the need for a different model.

Mind you, Telegram is funded by one wealthy benefactor, and I'd argue its a reasonably large service not attempting to compete for profit against other incumbents.

That model still needs users, then. "It's self-hosting" does not provide any kind of user story for, say, me. I have Twitter. Twitter works. This adds nothing to the experience and subtracts about a kerjillion people from the pool.

I agree that self-hosting isn't a story, but an underlying feature. You have Twitter. Twitter works. For now. Will it when Disney acquires it? Or some other corporate suitor?

Say Twitter gets acquired and subsequently completely fucked up (not that the latter necessarily follows from the former), and there's now a market void.

What're the odds the "winner" of the ensuing fight is the decentralized FOSS platform — that has very real tangible benefits, but ones that are hard to explain to an average user — over the shiny new VC-funded Twitter clone that can throw hundreds of thousands of dollars at user acquisition?

I have no idea how to fight the never ending torrent of VC money funding clone after clone after clone.

Time. It is only "worth it" for the one VC that wins the winner take all rat race. There can only be so much stupid money in the world before only the smart people are left with any.

I'm sure a similar question was asked by/of VCs back in the day for ads-supported webmail platforms - a la hotmail, gmail, yahoo mail, etc. I'm sure VCs at the time asked why should these platforms be built if email is an open standard, and if everyone has their own desktop email client. And yet, so many users have prospered by some users using these "free" webmail platforms and others using the conventional desktop email clients. Email is decentralized and for all its warts has allowed collaboration between users of different silos.

If/when social platforms begin to use more universal/interchangable/inter-communicational standards, the various silos can still compete - including private/self-hosted, community-hosted, for-profit silos, etc. - though the competition won't be on limiting communication, but rather can this silo/site provide better uptime/availability, or can that silo/site develop better mobile/desktop/web clients, or can a silo/site offer better discoverability, or even (for the for-profit silos) can this silo/site offer more relevant ads, etc.

Email's coming from the opposite direction, though — commercial platforms emerging out of an open standard. This is trying to make the jump from a centralized model to a decentralized one.

While I definitely believe that would be a fantastic thing for the world if it happened, I'm curious about what the practical path is to get people to actually use decentralized services, when individual platforms don't yet have any incentive to bring down their garden walls.

> That model still needs users, then. "It's self-hosting" does not provide any kind of user story for, say, me. I have Twitter.

So lets speak enthusiastically about it then! It costs you nothing and it helps to level the playing field against incumbents like twitter etc.

Personally I find the whole microblogging concept overhyped and really just want open social networks with adjustable privacy (along the lines of google+, just open source or at least multi-vendor) + chat, group chat, channels, bots etc along the lines of Telegram.

Actually that social network could just be an improved version of Wordpress/Blogger etc where I can straightforwardly choose what is visible to anyone, to colleagues, family etc etc.

> It costs you nothing

It costs me my network on Twitter. Where everyone already is.

> Personally I find the whole microblogging concept overhyped

That's great, but that's also irrelevant to what this is.

Wikipedia became the user standard because the competitors (encyclopedias) didn't have an online presence. This would be more akin to trying to create a new, decentralized wikipedia now, to compete with the centralized wikipedia.

It is notable that MediaWiki[0] is a decentralised / self-hosted Wikipedia. Of course, it is also what Wikipedia runs on.

[0] https://en.wikipedia.org/wiki/MediaWiki

> decentralised / self-hosted

Those are not the same thing. "Decentralised" implies that the functionality is provided by a bunch of nodes that communicate together. A MediaWiki instance is a single website that doesn't communicate to other MediaWiki instances for its functionality.

Smallest Federated Wiki (https://wardcunningham.github.io/) is closer to what a decentralised wiki software would be.

It depends. I would have done better to put decentralised in quotes myself.

It was being used to refer to the fact that a company wiki isn't under a central authorities control. This was the common contextual usage of decentralised in this thread (stemming from the fact that all twitter accounts are under a central authorities control).

"decentralised" is such a mess of a term by itself.

"Decentralized", in computing, is pretty unambiguous. My Postgres database isn't "decentralized" because I run my own instance of Postgres. My Zookeeper cluster is "decentralized" because I can shoot nodes dead and the remaining ones will handle their business as far as continuing operation.

> It turns into a utility, like Wikipedia, or OpenStreetMap. Not all that provides value generates profit, hence the need for a different model.

The only conceivable reason it would is if individual providers found value data mining it.

OpenStreetMap infrastructure only costs $200K/year to run. A microblogging platform can't come up with $200K/year?

You make it sound trivial. Where would it come up with $200/K year?

I'd propose crowdfunding the first $200k to gauge interest before committing resources, and then move to a subscription model ($1-5/user/year). WhatsApp had success at that price point, which leads me to believe $1/year would not be a hard sell for those interested in an ongoing microblogging platform.

Note: Twitter has ~313 million active monthly users. Only 0.0006 percent of those users would need to find interest in this sort of new platform for it to be viable (at the price point I mention above).

But twitter has a global timeline, spends lots of money on user acquisition and partnerships with major corporations to broadcast and manage events.

Even if we assume that $200m/yr from OSM (which has a much easier job than Twitter, scaling) is reasonable, this new system people are proposing lacks a lot of fundamental discovery features that make Twitter valuable.

And yet again, even if they are addressed then this means many more people would need to pitch in for the initial customer acquisition and community building. I know many people at Twitter who labor to do exactly that sort of thing to this very day.

People buidling these networks think their technology is what's valuable, and there is a threshold of scale you have to meet (which btw, I do not think the projects involved here have demonstrated), but after that it's the community that has the real value.

My experience with Mastodon is a blank screen with a single message from me, "I wonder how I meet people here?"

Even the word "microblogging" captures fundamentally the wrong idea about what drives the core of twitter's community and engagement.

>which leads me to believe $1/year would not be a hard sell for those interested in an ongoing microblogging platform.

That's the hard part. Why would they be interested? There are tons of microblogging platforms available.

Donations more or less. Also such things scale down very well, you can start with a small server and a few users costing next to nothing.

Life is not just about making money. And even making money becomes easier if you have done something cool and recognizable in the past. At the very least you can use it on your resume, or when coordinating the team at your start-up, or as a foundation to start a conference career.

> They're USP, which Facebook and Twitter can never compete with, is self-hosting.

USPs work best when they address an acute problem the person you're pitching it to has to struggle with every day.

Nobody in the general public is looking at Facebook or Twitter and thinking "this would be so much better if it made me pay money and deal with installing software."

What is USP?

Unique selling proposition

and they are that? I don't understand, but english is my native language so maybe I'm not grasping the meaning of words maybe?

I think OP used "they're" instead of "their". Read the sentence again with that in mind and it makes sense.

Sorry, fixed. Blooming autocorrect.

Just read this: https://en.wikipedia.org/wiki/Unique_selling_proposition

It is very common business lingo, but you couldn't be blamed for ignoring such things.

I have high hopes for Akasha ( http://akasha.world )

Seems interesting, but it is ridiculous that they have a profile in each other "social network".

In case anyone mentions, https://twitter.com/facebook is also ridiculous.

> it is ridiculous that they have a profile in each other "social network".

I disagree. Should socialists not be allowed to use computers because capitalism made computers and they are betraying their cause by using one? (Simple/contrived example, but it makes the point)

How is anybody going to even hear about this project if it doesn't advertise on social media?

No, that wasn't my point. A socialist should be able to use a computer, but not own computers or sell computers, we may say.

> Disruption means doing something that your competitors are effectively incapable of doing.

Protecting free speech in the face of ideological pressure is an option.

Because building real decentralized services, i.e. cross-platform peer-to-peer clients that are stylish and secure, is really hard.

Do Hard Things. Nothing interesting was ever easy.

Granted, that's easier said than done.

maybe I don't want Twitter owning my Tweets

however, I do agree... This is not the first Twitter clone on here?

That's a fine reason to use an alternative social network, but building these things doesn't solve the larger problem in a way that is meaningfully competitive. GNUSocial has been around for ages, but you don't see anyone scrambling to compete against the rising tide of federated social networks.

Most people are on Facebook and Twitter. That is our target market. The question isn't, "how do I maintain control of my media?", that's actually not a hard problem. The problem that needs solving is this:

How can we, the people, compete directly with enormously wealthy corporate entities? We have them hooked on free software, that's a huge win, but how do we go from there to user acquisition? How do we do support? Marketing? How do we ensure good UX? Does it cost money? How do we pay for our time? I don't pretend to know the answer, but I think these are things the FOSS community needs to spend some time thinking about.

I hate to admit it, but you have great points here!

the trade off then is nobody reading your tweets. So which do you want? an audience or tweet ownership? And what does "owning" your tweets even mean?

For one, "owning" means that there is no one, except you, who can singlehandedly delete or censor content that you published on the social media platform. This happens regularly e.g. in Turkey to silence opposition. Most recent notable case https://twitter.com/MahirZeynalov/status/780420919470751744

And that's the tip of the iceberg.

I recall quite a few of these solutions letting you post to both the decentralised service and the likes of Twitter at the same time. So your old audience would still see your content, and (theoretically) be gradually encouraged to move over.

I think in a better world/internet (need not be perfect), you would post your content (posts, tweets, whatever) on your site first. Or, maybe a decentralized site that you might not control alone, but is a separate community from the big silos (e.g. https://quitter.no)...And then, your content is accepted (pushed out) and able to be read by users who only live (or spend most of their time) on the big silos. In other words, it is possible to have both worlds that you noted.

This would allow freedom for indie authors to own their content (in the scenario where one of the big social network silos shuts down, or the big boys for some reason wish to censor an author's content, etc.) and post their content however they wish and from wherever they wish, but still allow them to retain audience (those users who are fine just living on the big social network silos)...This is not unlike email, where i can send a message to pretty much any legitimate email address regardless of the silo (I'm leaving out spam blocks out of discussion of course).

I guess people should make different kinds of "social networks". Twitter, Facebook, Instagram -- and all the decentralized clones -- are just the same thing. You have your own page/blog where you post your own things, others read those from their "news feed".

Is that really everything that all the developers in the world could conceive? Is that the definition of "social network"?

In the blogosphere (boy, has that word dated fast) there was such things called "planets", which aggregated the blogs from a community of interest. Kinda like hacker news, but if you found some interesting article you could keep track of everything the same author had published to the same site.

When I read these news I'm always reminded of a certain old project.

There once was a decentralized communication platform that promised to replace email, wikis, forums, article comment services, blogs, microblogs, you name it.

It was technically very advanced: many people could work on the same document at the same time and they would see each other's changes in real time, even if they were working from different federated servers. The history of all changes was accessible as well, in a very user-friendly way (play button and time slider.)

The GUI was not as fast as it could be, but it was cross-platform, user-friendly, and it worked.

I'm talking about Google Wave. It was federated, it was very advanced, and it failed spectacularly. Keep that in mind as you make further predictions.

Just my opinion, but I actually would have reported this differently.

Firstly, Wave - the protocol - is still around; its an apache project: https://incubator.apache.org/wave/ So technically and actually anyone could create their own (free or for-pay) service/instance. There's nothing stopping a couple of kids (or senior employees disgruntled with their current enterprise employer) from scrapping together a new project/venture to start a new social network based on Wave, etc.

The platform didn't fail so much as Google let it die off (at least retired it from their infrastructure, retired it as a product they supported, etc.). As another person here has noted, google creates some cool tech. And, in this case, google either didn't know what to do with this cool tech., or felt they couldn't make money on it, or felt users couldn't adopt it, etc. Or, who knows, maybe it was a technology too far ahead of its time for google to really understand its potential. I myself thought it was a great idea.

Google closed it down. Like it also did with Google Reader and eventually XMPP federation for Google Talk (now Hangouts). Google developed a lot of cool tech for federation and the open web (some of the protocols my project and GNU social use, for example) and then had a change of heart sometime around the birth of G+. I'm not sure this says more about federated projects than Google itself?

> The GUI was not as fast as it could be, but it was cross-platform, user-friendly, and it worked.

The UI was slow as hell, even practically unusable on something like a netbook at the time.

> I'm talking about Google Wave. It was federated, it was very advanced, and it failed spectacularly. Keep that in mind as you make further predictions.

As far as I remember Google suddenly decided to drop it after a very very short time frame. This combined with the bad experience of a slow UI practically buried it in the ground and the world moved on. What failed there was Google, we do not really know if the general concept of wave is a fail neither if its federated protocol is a fail. Most importantly I don't think wave tells us anything about the prospects of federal social networks in general.

Almost thought you were talking about Diaspora for a minute.

I thought you meant NNTP.

Looks really interesting and exciting.


- Strange decision to have several vertical feeds - doesn't seem very convenient. Can there be one stream with several tabs or something like that?

- It would be cool if there would be reddit-like discovery system, so that you could browse tags, and then sort the posts in the tag by hot/new/top.


- What are your plans for this platform? Is it just a fun side project? Are you planning to compete with twitter?

- Are you planning to monetize?

As the other poster pointed out, I was heavily inspired by TweetDeck which I've been using for 6+ years.

And yes, I agree that's a nice suggestion, user/content discovery is definitely a big area in which this can be improved.

Edit: I realized I forgot to answer the last two questions.

Plans for the project: I'm a realist so I don't think that it will be able to compete with Twitter. However I would like this project to become the go-to option for people who are already inclined to prefer decentralized/self-hosted solutions, and simply be better than the other software in that space.

No, I don't plan to monetize. Mastodon is open-source, licensed under AGLPv3. However I do have a Patreon through which interested people could support me while I work on it.

I wish you luck!

It doesnt have to become mainstream to be extremely valuable. If it could become a high quality niche community of geeks and hackers, like HN, it could be very awesome. Maybe it could be to twitter what HN is to reddit?

It's essentially copying the UI of Tweetdeck, which is/was very popular w/ power users.

This is great. Good work!

My entire family is currently using Path as a small social network and share a lot there. I'd love to move us to something we can control and where the data (esp. photos) aren't locked away in a proprietary system. Does this (or Gnu Social) support protected accounts, where permission must be given for people to see and follow accounts?

That is exactly my same use-case: a private/self-hosted social network only for my family; and I happen to use Gnu Social. To be clear, Gnu Social is NOT the only open source platform that accommodates this use-case. Specific to your question, here's a screenshot of some of the settings for restricting access on gnu social: http://imgur.com/a/gXy7y

As far as mobile clients, my family and I use AndStatus [http://andstatus.org] which works awesomely with gnu social, is an extremely lightweight mobile application, gets updated constantly by the dev. team, and also allows you to post to your twitter account.

Good luck!

GNU Social supports that and even entirely locked down servers. Want one for your own family and no one else? That's one of the configurable options.

+1, for everything written here! Exact same usecase

If you don't know anyone you can follow on it yet, you can start with me: Gargron@mastodon.social

Also if you have any questions feel free to ask!

One nitpick (I'm sure you've gotten many). If I go to https://mastodon.social/users/Gargron there are no follow buttons. If I'm logged in and I add you to follow, then I can click on your name and get the (un)follow/block buttons, but not from the main user page.

To compare, when I click on aqeel, I get https://social.aqeeliz.com/aqeel which has a subscribe button.

Gargron doesn't quite have the same ring to it as the Myspace Tom of old ;-)

Some questions:

1. Is this supposed to be run by me (an individual?) or run for my by somebody else (some existing community?).

2. Is there any information on what makes this decentralized? How does it "discover" other users?

1. You can either run it yourself or find an instance run by someone else (e.g. my flagship instance mastodon.social). This is similar in principle to GNU social, Diaspora and XMPP.

2. Users belong to a certain instance and can be addressed like username@domain. You can follow any user from any instance and you will receive their posts, you can interact with them just like if they'd be on your own instance (replies, mentions, reblogs, favourites, etc). On the technical side, this is accomplished with OStatus, Atom feeds/ActivityStreams, Salmon, PubSubHubbub and Webfinger. Anything that supports those technologies is part of the network (e.g. GNU social instances)

User discovery in the sense of UX is something I want to work on in the future, like implementing "who to follow" suggestions etc.

> Is there any information on what makes this decentralized? How does it "discover" other users?

The README says it is a Gnu Social implementation (previously known as StatusNet). It uses Jabber/XMPP for Message transport, which is decentralised and federated. See also


Mostly correct but it does not use Jabber/XMPP, it uses a set of procotols like Webfinger (account resource discovery), Atom/ActivityStreams, Salmon (remote account notifications) and PubSubHubbub (follower update notifications)

Right, sorry. I should have read the Wikipedia article more carefully.

Others have pointed out that OStatus isn't built on XMPP, but maybe the source of your confusion is this:

OpenMicroBlogging, predecessor of OStatus and the original protocol of laconi.ca/StatusNet/GNU Social, was built on XMPP.

Ironically, these decentralized microblogging and social platforms are getting too diverse. We're all trapped in wall-less walled gardens.

This is exactly why the W3 is developing a standard called ActivityPub, so that all of these platforms can communicate amongst each other. It shouldn't matter what platform or node you choose to host your social media profile. They should all be able to communicate with everyone else (like email!).


Now that is good news. At the moment, we have a xkcd/927 situation on our hands.

ActivityPub is a successor to ActivityStreams/Salmon which Mastodon and GNU social are currently using. At least with these it's not really a xkcd/927 situation.

Diaspora? Pump.io? Patchwork (the SSB thing)?

Why do you drop other names? Diaspora is a tool, not a standard. If they are still developing that then they may actually implement to read and share data in the standard as well.

However, they haven't done that yet. So they're competing "standards," even if one isn't standardized.

An announced successor is still xkcd/927 until it actually replaces all use of the predecessors.

Case in point: pump.io is the successor of OStatus and StatusNet.

Tangent: I just typed `xkcd/927` in Safari and it took me directly to the XKCD page. Is this some kind of Safari easter egg? It doesn't work in Chrome or Firefox.

I want this to be true.

Confirmed here too.

I think you're on to something. It worked with xkcd/<anything> for me.

some browsers add .com automatically, try again with example/1234

Hmm, you may be correct. The pattern seems to work generally.

example/123 --> http://www.example.com/123

facebook/someusername --> https://www.facebook.com/someusername

I tried on Mobile Safari too but it didn't seem to expand there.

That's fine as long as they're compatible with each other, isn't it? Different software, same social network.

...But they're not. Are you using diaspora, pump.io, gnusocial, or something else? Sure, there are bridges, but they're kind of awkward.

I can't speak for Diaspora but Pump.io, GNU social and Mastodon don't need bridges, the users are actually equal.

Indeed. Which is why they weren't mentioned.

pump.io and OStatus are not compatible.

Not really. That is what open standards are for. If you make sure your tool communicates and stores data in open formats you are not locked in, since any other tool that can read these standards can work with your data as well, import it, represent it in its own flair etc.

But we don't have one yet. Work is being done, but the standard isn't finished or supported by the majority.

Between playing around on mastodon, and my family's own/private gnu social instance, and matrix.org, i honestly don't know which to give my attention...In any case, it is exciting that there are a few efforts underway that have to do with decentralized communication. Funny how email - and its decentralized-ness - still lives on. I grant you that other platforms might get their attention (sometimes short-lived), but decentralized platforms - yes like email - just don't die...and i think that's great because among other reasons decentralization fends off death.

Kudos to the Mastodon team!

"Private" in the meaning of running your own host, or "private" as in "people I don't trust can't access it"? The latter would be quite interesting to me. How to achieve that with gnu social platforms?

In my case I actually meant both; I do host my own, and I've locked it down as a private instance only for my family. (I do this partly to play around and learn, but more so for me to teach my kid how to actually use social media but in a safe environment, before letting them loose on the public/uncontrollable silos.)

Here's a screenshot of some of the settings for restricting access on gnu social: http://imgur.com/a/gXy7y

It really looks like they thought about that when developing gnu social as well and you can just set checkboxes. That's nice. In that regard I'll probably also set up my own instance. Thanks!

Thank you! The Mastodon team is just me though!

So, a couple nitpicks, hopefully of some use:

https://mastodon.social/users/mnx/updates/11273 (no proper breaking of lines)

https://mastodon.social/users/mnx/updates/11268 (might want to add overflow:hidden)

When clicking the follow button with no address typed, I get a 404 notification after a couple seconds.

I also got a 422, but I can't reproduce it now.

Right, I'll get on fixing the styles for that.

The error messages are a bit close to programmatic at the moment, 404 means user hasn't been found, 422 (unprocessable entity) means validation error (like if you submit empty status or over the character limit). So it's all intended, just the error messages could be humanized a lot.

Random poll: Do HNers make distinction between decentralized and federated platforms/systems/networks?

I think that both decentralized and federated carry some baggage that make them not equal. But really they kind of are the same.

For me federated just puts some ownership outside of the central system, but that is because of my experience with federated identity and auth systems. It's super gross so when I hear federated I cringe.

Decentralized sounds better to me, but I also think of it more as distributed, but that is me reading into it more than I should. Decentralized is more about reducing points of failure that can bring down the whole. Which is cool, but still if I wanted to silence part of the network I could do that. Distributed on the other hand implies replication and sharing. With that model I can take down parts of the network and nothing is lost.

So I think that decentralized and federated are similar, but not the same really. I don't think that either are ideal. I don't really understand the goals of projects like these so I can't say if either path right right.

What does that question even mean?

Do I value a service higher because it's decentralized? (yes, see how much value git, blogs and email have) Do I understand the technical difference? (yes) Do I treat both the same despite understanding that there is a technical difference? (no)

*edit: The question probably should be "Do I value control over my data?" and the answer is that the more capable a person is in the technical sphere the more he values it. Most people aren't and don't want to be capable, so they don't value it at all. That question is the most reasonable interpretation but it doesn't need a poll. You can pretty much ask how much technical skills people have here.

To get started, here is my view (which I don't claim to be particularly authoritative or even correct):

In federated networks user is generally bound to one "server" (in the abstract sense), typically by identity, and that server manages the users resources. In comparison in decentralized networks resources are contributed and consumed in a more of a pooled fashion, and individual users connect to the network instead of their home server.

Alternatively I'd consider federation to be subcategory or implementation method for decentralization. But then I'm not sure what I'd call non-federated decentralized systems. Distributed maybe? That doesn't sound right.

Centralized: Facebook, Twitter

Decentralized: xmpp, email, gnu social

Distributed: bittorrent

Decentralized & Distributed: Twister

To be honest I perceive decentralized and federated as synonyms.

This HN:er does. Here's my take:

Decentralized: Not centralized, not a single server or provider.

Federated and distributed systems are both decentralized systems.

Federated: Several providers or servers, equal among themselves, but users are tied to one of them, possibly with a mechanism to switch providers, but there's always at any given time a "home server".

Distributed: Peer-to-peer. One user, one node, client and server in one, no providers or servers that users connect to, users connect to "the network". Nodes come and go over the day, so data is necessarily replicated.

My dream social network is distributed at its core, but with a federated overlay that allows people to easily join, and to discover the network and its contents by clearnet web search.

I would look at what-used-to-be-Skype as decentralized and email as federated. I guess email was probably only one of the few federated technologies that was able to survive through times. I cannot imagine any new technology that can survive when there are many good reasons to not standardize.


Yep, decentralized is really nice and would be perfect if everyone just did it, but it's never going to happen so the only model that can have a reasonable chance to take the place of centralized systems is a federated one. It removes all the burden of installation, administration, safeguarding, scaling, etc from the users.

Decentralized = federated or peer2peer.

Yes, they are quite different.

The URL is so Rails-ish RESTful


Maybe it can be simplified like twitter's URL


One plus point over the norm is that it's not open to enumeration attacks. At least on the user endpoint and the link you posted.

Looking forward to the day when we get a decentralized microblogging platform where clicking iOS/Android app store link and installing the app is all you need to get started. Until then, or until something like Sandstorm takes hold as something you can assume your users have access to, I'm on the fence..

I'd love to write an app client for it eventually.

Cool! I think the moment I can tell my friends to "go here, install this thing and sign up" something will happen. A lot of people will want to produce content without a 3rd party controlling it!

I really enjoy using GNU Social and it is good to see alternative implementations using the same protocol. An option to just use Postgres, and not Postgres + Redis might make installing easier for experimenting with running a node.

Mastodon uses redis sorted sets and publish/subscribe for timelines and real-time message delivery respectively. And for background processing. It's not easily replaceable, plus it's a super lightweight dependency and a lot of projects nowadays use redis as well.

An alternative that's been out for a while now: https://github.com/diaspora/diaspora/

I still don't quite understand how these decentralized networks work. So there's no "global" stream you can take a look at? Only from people you added? Because from a privacy standpoint I'd think that it would somehow be possible to get access to all available profiles on all instances and create a big platform where you gather all data and keep it forever.

Yes, you could do that. It would be like crawling the web and the task would probably require equivalent resources depending on how big the whole known network is.

There is also https://www.writedown.co (not gnu compatible)

:) I'm also co founder of aris' product.

Is there is a dummy password for guest users? I don't want to create a new account and just to audit a service.

Don't you think, email requirement should be optional, at least in the stage of early development.

You can use mailinator.com to get a throwaway email account, or use bugmenot.com to make a throwaway <whatever> account


requires registration to be able to use it. I still don't get why people are down voting my post.

I don't mean github account at all.

Looks good, would love to see this take off! I've been really curious about rails lately - were there any major benefits compared to writing this in PHP?

How is spam and abuse handled in this system?

It's early in development so I haven't gotten to an admin UI to moderate content yet, but blocks are already implemented.

Edit: If you look at the github issues, I have a couple of features queued up for dealing with abuse.

That is left as an exercise for the reader.

maybe a blockchain of trust with your wallet having more value the more people rank up your content? then you only allow people with a certain wallet value to "interact" with your content ie comment/like/get access to a secondary "paywalled" subsite. initial values are assigned and handed out by core developers/"influencers" ie the rich

maybe a second threshold value that can only interact with each other(they won't be visible to people who set their threshold to above the value that they own) ie the poor can interact with the poor

only the rich can talk to the rich and the poor can only talk to the poor but the poor are allowed to look at the rich and verify that they themselves are indeed poor. the poor can collaborate with each other or incentivise the rich to "pay" them.

trust flows just like centralised social networks because it's easier to do than play whackamole with low value easily created bots/spammers.any bots who abuse these systems and rise to positions of visibility are considered high value bot networks(since they somehow managed to get enough "value" to exist in the system either by using random meme based content generation or other abusive but entertaining tactics for eg r/subredditsimulator ). these bots could then be easily de-valued by users with very high values( the super rich-the core developers/influencers) if they irritate their audiences too much.

I don't see why a blockchain or "currency" would be needed. It adds a large administrative overhead (the blockchain, a diverse pool of peers, etc.), is exclusionary as you say, and causes (a weak form of) centralisation. The benefit of a blockchain is having arbitrary adversarial agents reach a global consensus (such as who owns what); but that's much stronger than what's required for blocking spam.

You can make spam expensive by using a proof-of-work system like HashCash ( https://en.wikipedia.org/wiki/Hashcash ), which is the idea that inspired mining. HashCash adds proof-of-work to a message, which is specific to that message. The receiver verifies the proof then discards it. There's no datastructure to maintain, no consensus required, no need to involve anyone other than the sender and receiver, etc.

HashCash didn't catch on for email, since its 'fire and forget' nature prevented senders and receivers from negotiating a non-zero amount of work. Such problems can be avoided in this kind of real-time protocol: just add an extra step to ask the receiver how much work it requires, then do the work, then send the message.

With such a negotiation layer, there's no need for every message to require the same amount of work. You could receive the message without hashcash, and reply with a cost based on how spammy it looks.

Everyone would be free to implement this however they like: give a high cost to everyone; check senders against public blacklists; give a whitelist of 'friends' a lower cost; reduce the cost if we've previously 'liked'/'followed'/etc. the sender; look up the sender in a pagerank/web-of-trust/friend-of-a-friend/etc. database; use a spam filter to score the message content; etc.

Why would I use this over Twitter ?

Not an author or a big fan, but the answer is quite objective so I can give it as well: (1) If you use a decentralized system you can decide who to give control over your data. (2) Using a software with open standards doesn't enforce you to continue using it if you don't like it anymore, since you can transfer your data elsewhere or delete it. (3) Using a software with open standards means you can interact with people who decided to use another software as long as it implements the same standards.

E.g. FB is handled by the FB company. You can only choose to enter that system or stay away. You can not choose to host your family photos only at another company and still share them on FB. But in a decentralized system you can use a choice of hosters or host them yourself and still share them with other users.

E.g. in most modern contact book and calendar apps you can export your data in open formats and then import them into another tool. Having more contacts doesn't mean anymore you need to stay with the tool you created them in.

E.g. your email client, whether it's Gmail, Outlook, or Thunderbird, can talk to the other email clients and hosters, since email is an open standard. In fact for most cases you don't really care what email program the other person uses.

The disadvantage of both decentralized and open-standards is that they usually require more effort to use. You need to have more skills yourself and take more responsibility. With Twitter, because they want your data, they will make it as easy as possible for your to give it to them. But in that case you need to rely on trusting the Twitter the company with that data for the rest of your life.

Well said!!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact