Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Mastodon, a federated microblogging network (mastodon.social)
172 points by gargron on Jan 2, 2017 | hide | past | favorite | 61 comments

Is this a re-implementation of GNU social/OStatus in Rails? Nice work, I might have to kick the tires on this a bit.

Folks at organizations you should start looking at running your own social infrastructure in the same way you run your own email infra. An org such as a state agency would prefer to own its own namespace, a huge improvement over the status quo.

Indeed! And I'm talking to some orgs about setting up their own instance for them :)

For everyone's information: GNU Social/OStatus is also known as the Google Buzz protocol stack. Weird twist of history how GNU ended up covertly becoming this federated protocol stack.

Can you elaborate or provide sources?

AFAIK GNU social's current codebase is a merge [1] between StatusNet and Free Social, with StatusNet previously known as Laconica [2] and developed by the same people behind Identi.ca [3], which itself was later re-made into pump.io [4]. The OStatus protocol, which is one of the several protocols used in GNU social, originated from the OpenMicroBlogging spec [5] promoted by the Identi.ca developers.

What's the Buzz connection?

[1] https://www.gnu.org/software/social/merge.html [2] https://git.gnu.io/gnu/gnu-social/commit/e3a53251c08ce5245f0... [3] https://jason.wordpress.com/2009/07/02/control-yourself/ [4] https://lwn.net/Articles/544347/ [5] https://github.com/OStatus/omb-spec

  OStatus is an open standard for distributed status updates that references a suite of open protocols including Atom, Activity Streams, PubSubHubbub, Salmon, Webfinger, 

Activity Streams is new, but the rest of these were all Google Buzz protocols. https://sites.google.com/a/going-buzz.com/tech/developers/un...

As weird a twist of history as it was that GNU so readily adopted the Google Buzz protocol stack, it's far more bizarre how completely undocumented and unmentionable this legacy is.

It's a pity that Salmon is an awful practically SOAP-like opaque envelope, because I rather like everything else here. But stuffing really good content inside a base64 envelope is really not ok with me and my expectation that casually working with a format shouldn't make me want to claw my eyes out.

But that name...

"Can you mastodon me?" Ugh.

I don't see this going mainstream with a name like this. I don't think anyone at NBC is ever going to say, "let's see what's trending on mastodon."

Actually, "let's see what's trending on mastodon." doesn't sound wrong to my ears at all, but maybe that's because I've been around people who say that for a couple of months.

For reference, the community-decided verb/noun for posting on Mastodon is "toot" (as in, the elephant sound), so that would be "can you toot me". I mean. It's ridiculous, but I like it. It's endearing.

In America (and I may be biased b/c my kids say it all the time) to toot means to blow your car horn...but it also means to fart. If I say "I tooted this morning," most people will assume I farted. You might want to reconsider that one.


"trumpet" would have been more fun, and sound less off-color in casual conversation.

Community didn't like it for being too long.

Oddly, "trump" is a euphemism for fart in UK.

What does this have to do with the topic at hand other than a common sequence of five letters?

Because it was raised as a concern a couple of posts up in relation to Tooting a mastodon message?

Mastodon is the software. Welcome to the world of community powered social media. You could name your site twatter if you want, or quitter ;) and still use the mastodon software.

Not as weird as "Can you Facebook me?" — OR — "Can you Twitter me?"

I think it's called a tweet. Can you tweet me?

Facebook is horrible. I guess mastodon will succeed after all.

The GitHub page offers a better introduction IMO:


Also made me look up the original meaning of Mastodon (can see now that it's not named after the metal band):


Looks pretty good from what I've seen. Set up an account for my site, posted a few messages to test how it works and found that everything seems pretty much as I'd expect from a Twitter type site.

Gonna download the source and try out an instance at one point too.

However, I do have one question here:

How are you planning to differentiate this from other microblogging platforms with very similar feature sets and styles? I mean, GNU Social seems to be catching on a fair bit nowadays, and that feels a lot like this software too.

Is there a plan to make this the most popular 'federated microblogging network' rather than one of the other twenty or so out there already?

Just wondering.

If you try GNU social and Mastodon I believe with a high confidence that you'll find that Mastodon is a much better execution of the idea. So yeah my goal is for this to be the most popular thing. But they're not mutually exclusive, GNU social is still the same network.

Mastodon is packed with LGBTQ+ people and furries. This appeals to me in a way other platforms do not.

r/Mastodon/This instance of Mastodon/


I see a lot of instances popping up within this instance's community, and they all seem to fit that profile. Might be a biased perspective. :P

>"GNU Social seems to be catching on a fair bit nowadays, and that feels a lot like this software too."

The GitHub page describes Mastodon as "An alternative implementation of the GNU social project". I'm guessing the two are compatible.

GNU social is a PHP application and the underlying compatible protocol is OStatus (https://github.com/OStatus)

Thanks for the tip. Interesting to learn that the W3C is involved in the development of OStatus:


"GNU social" - good, I like that protocol suite... But how do I discover fellow users to fill my subscription list across different sites ? Can I search across the whole networks ? These are inherently easier with a centralized service - and they are critical to adoption... How are decentralized services going to provide functionality to satisfy those needs ?


If someone from your instance follows someone remotely, that account is in the instance's database, and can be searched (we have account search). Furthermore you'll see their posts in a real-time public timeline if you wish to view that.

If you're just kickstarting a fresh instance and are alone, yeah, you kinda have to browse other sites to find people to follow. But then you follow them (there's also a "remote follow" button across mastodon and GNU social sites that facilitates this) and you get that benefit again. And you find people who the people you're following retweet/reblog/boost (whatever you wanna call it).

I mean honestly, it's not like you can immediately find every good account on Twitter either. It's not much harder or at all imo.

Is there some easy way for me to automatically cross-post my twitter posts to Mastodon?

You might want to consider using Known ( https://withknown.com/ ) or backing http://micro.blog/ if you want good, cross-network cross-posting.

For some definition of "easy": https://github.com/halcy/MastodonToTwitter

Should note that this doesn't work well for anything but the simplest posts since mentions and image embeds work differently across the two platforms.

Images actually work fine! But yes, mentions don't quite "work", i.e. when you mention someone on twitter and it gets cross-posted to Mastodon, it appears as a string "@username@twitter.com" which is informative enough but not really "correct" if you get what I mean.

I might be bit dense, but can you browse this thing somehow without first registering?

You can browse individual accounts, e.g.:

https://mastodon.social/users/Gargron https://mastodon.social/users/Triplefox

But there isn't a feed of the public timeline which would be the most interesting one.

Sorry, you can't. I kinda forgot that would be a nice addition.

forgot? people have been asking you for this feature for ages.

This doesn't play nice federating with the GNU Social codebase. Things that should travel across simply disappears. It needs more work.

What disappears? Let me know @Gargron@mastodon.social or per e-mail eugen@zeonfederated.com

Edit: Also as a side note, mastodon.social has been federating with GNU social just fine for more than 6 months, so I'm inclined to believe this is some sort of confusion

I would ping you except that your server doesn't talk to Quitter.se while the rest of the GNU Social federation does so just fine. I'm remote-subscribed to people there yet they don't show up in my timeline. I just tried to remote follow someone and Quitter.se failed that out.

I have multiple quitter.se followers and am following multiple quitter.se people. Are you sure it's not some sort of temporary issue with quitter.se? You could ask @hannes2peer@quitter.se (admin of quitter.se)

I have tooted many a toot on this service and intend to continue doing so.

I like this... especially the private feature!!!!

I signed up and tried it out. The "Public" thing on the right side apparently can't be shut off. About every third toot has four-letter words. Racism, sexually inappropriate comments, politics, you get to see it all. I don't see that working.

You can press back in your browser to leave the public timeline, as well as opening anything else (account, hashtag, status) will replace it.

I make an effort to moderate the worst, i.e. hate speech, spam and vandalism should not stay on the public timeline for long (who disagrees with my policies is welcome to start their own instance). If I've missed something please let me know @Gargron@mastodon.social or per e-mail eugen@zeonfederated.com. A "report" feature is in the works in the next few days.

I added a "back" button to the headers of the public and hashtag timelines that takes you back to the getting started page, just for you.

Okay. Thanks. You might want to think about this going forward, given all the things Twitter has to deal with.

Pretty cool! I also have a prototype microblogging project I'm hoping to release sometime this year, but it's very early. Information on OStatus seems scant right now. Can you discuss what's involved with it and why you chose to use it?

Here are all the OStatus specs and RFCs used: https://github.com/Gargron/mastodon/wiki/Specs-and-RFCs-used

Are there any docs on how they plan to avoid spam from other federated instances?

There are mod tools like sandboxing spam accounts or outright suspending any account (preventing it from posting and removing all of its data from the db).

I guess that won't really scale if a popular federated server (easy to create fresh accounts) starts attracting spammers?

The entire network has never been big enough to need a comprehensive solution beyond individuals blocking content they don't like.

This looks really interesting - going to give it a look.

I could almost see it being an internal Slack-style competitor of sorts for an intranet (if users are looking to "shout" more into the ether of the community)

How many active users ? Like, accessing the platform once a week or more ?

I don't do any real tracking except for login times, so here is the best data i can offer (for mastodon.social exclusively, other Mastodon and GNU social instances are obviously excluded but should count towards your question because of federation):

1687 users active in the last 14 days. 16,744 registered accounts on mastodon.social. 18,347 accounts in total known to this instance. 460,563 statuses in the database, 306,905 created by locally registered users. 173 different Mastodon/GNU social instances known to this instance (i.e. at least one account from such an instance in the database).

Hopefully that answers your question!

Didn't Twitter use Rails at first and it failed under load?

I'm almost certain that Twitter is still using Rails in parts of the stack (they replaced the messaging bus with Scala, or something of that sort). Most importantly, a single Mastodon instance is not supposed to grow as big as Twitter. Lots of smaller instances don't have to deal with the same load as Twitter alone.

I'm quite excited about this, as a concept a decentralised twitter meets diaspora is something that I'd love to see popularised.

I'm not sure if I understand, but other (future) sites using the protocol will have the access to the same data? Meaning my toots will travel to all of the implementations?

Your toots will travel to all your followers, regardless of which site they're on.

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