13 ms·
Show HN: A new decentralized microblogging platform
- daveid 10y agoIf 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!
- Tharkun 10y agoGargron doesn't quite have the same ring to it as the Myspace Tom of old ;-)
- ytjohn 10y agoOne nitpick (I'm sure you've gotten many). If I go to https://mastodon.social/users/Gargron 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 https://social.aqeeliz.com/aqeel which has a subscribe button.
- the_common_man 10y agoSome 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?
- daveid 10y ago1. 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.
- okket 10y ago> 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 https://en.wikipedia.org/wiki/GNU_social https://en.wikipedia.org/wiki/GNU_social
- daveid 10y agoMostly 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)
- okket 10y agoRight, sorry. I should have read the Wikipedia article more carefully.
- clacke2 10y agoOthers 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.
- qwertyuiop924 10y agoIronically, these decentralized microblogging and social platforms are getting too diverse. We're all trapped in wall-less walled gardens.
- daveid 10y agoThat's fine as long as they're compatible with each other, isn't it? Different software, same social network.
- qwertyuiop924 10y ago...But they're not. Are you using diaspora, pump.io, gnusocial, or something else? Sure, there are bridges, but they're kind of awkward.
- daveid 10y agoI can't speak for Diaspora but Pump.io, GNU social and Mastodon don't need bridges, the users are actually equal.
- qwertyuiop924 10y agoIndeed. Which is why they weren't mentioned.
- clacke2 10y agopump.io and OStatus are not compatible.
- dublinben 10y agoThis 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!). https://www.w3.org/TR/activitypub/ https://www.w3.org/TR/activitypub/
- timmorgan 10y agoThis 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?
- droopybuns 10y ago+1, for everything written here! Exact same usecase
- kstrauser 10y agoGNU 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.
- mxuribe 10y agoThat 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 http://imgur.com/a/gXy7y As far as mobile clients, my family and I use AndStatus [http://andstatus.org 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!
- zokier 10y agoRandom poll: Do HNers make distinction between decentralized and federated platforms/systems/networks?
- harigov 10y agoI 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.
- petre 10y agoIRC?
- daveid 10y agoTo be honest I perceive decentralized and federated as synonyms.
- zokier 10y agoTo 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.
- saynsedit 10y agoCentralized: Facebook, Twitter Decentralized: xmpp, email, gnu social Distributed: bittorrent
- 2AF3 10y agoDecentralized & Distributed: Twister
- xj9 10y agoWhy 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.
- phowat 10y agoI have high hopes for Akasha ( http://akasha.world http://akasha.world )
- fiatjaf 10y agoSeems interesting, but it is ridiculous that they have a profile in each other "social network". In case anyone mentions, https://twitter.com/facebook https://twitter.com/facebook is also ridiculous.
- orthecreedence 10y ago> 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?
- fiatjaf 10y agoNo, that wasn't my point. A socialist should be able to use a computer, but not own computers or sell computers, we may say.
- mrcactu5 10y agomaybe I don't want Twitter owning my Tweets however, I do agree... This is not the first Twitter clone on here?
- rayalez 10y agoLooks really interesting and exciting. Feedback: - 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. Questions: - 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?
- nhaliday 10y agoIt's essentially copying the UI of Tweetdeck, which is/was very popular w/ power users.
- daveid 10y agoAs 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.
- rayalez 10y agoI 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?
- pjc50 10y agoHow is spam and abuse handled in this system?
- daveid 10y agoIt'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.
- skizm 10y agoThat is left as an exercise for the reader.
- kkarakk 10y agomaybe 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.
- chriswarbo 10y agoI 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 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.
- captainmuon 10y agoNice! 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, ....)
- daveid 10y agoHere is my profile: https://mastodon.social/users/Gargron https://mastodon.social/users/Gargron I also made a demo video (linked in the README): https://www.youtube.com/watch?v=YO1jQ8_rAMU https://www.youtube.com/watch?v=YO1jQ8_rAMU I realize that a public timeline would be a good addition.
- davidcollantes 10y ago@daveid, are there instructions on how to get Mastodon running without Docker? Very nice looking app, thanks!
- midgetjones 10y agoIt looks like a standard Rails app, so you should just be able to clone the repo and google the rest.
- Zash 10y ago
- aq3cn 10y agoIs 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.
- aq3cn 10y agohttps://mastodon.social/auth/sign_up https://mastodon.social/auth/sign_up 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.
- chriswarbo 10y agoYou can use mailinator.com to get a throwaway email account, or use bugmenot.com to make a throwaway <whatever> account
- augustl 10y agoLooking 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..
- arisAlexis 10y agoThere is also https://www.writedown.co https://www.writedown.co (not gnu compatible)
- Adam24 10y ago:) I'm also co founder of aris' product.
- throway4565 10y agoThis is a terrible idea because it is just another centralized decentralized network. What you want is something like ZeroNet which has microblogging built in. They should improve their OSX/Linux clients more but it works pretty great now. https://zeronet.io/ https://zeronet.io/
- mnx 10y agoSo, a couple nitpicks, hopefully of some use: https://mastodon.social/users/mnx/updates/11273 https://mastodon.social/users/mnx/updates/11273 (no proper breaking of lines) https://mastodon.social/users/mnx/updates/11268 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.
- daveid 10y agoRight, 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.
- supercoder 10y agoWhy would I use this over Twitter ?
- erikb 10y agoNot 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.
- mxuribe 10y agoWell said!!
- bikamonki 10y agoAn alternative that's been out for a while now: https://github.com/diaspora/diaspora/ https://github.com/diaspora/diaspora/
- mxuribe 10y agoBetween 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!
- daveid 10y agoThank you! The Mastodon team is just me though!
- erikb 10y ago"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?
- mxuribe 10y agoIn 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 http://imgur.com/a/gXy7y
- erikb 10y agoIt 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!
- mark_l_watson 10y agoI 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.
- daveid 10y agoMastodon 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.
- etatoby 10y agoWhen 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.
- daveid 10y agoGoogle 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?
- est 10y agoI thought you meant NNTP.
- jklinger410 10y agoAlmost thought you were talking about Diaspora for a minute.
- mxuribe 10y agoJust 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/ 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.
- est 10y agoThe URL is so Rails-ish RESTful https://mastodon.social/users/est/updates/11744 https://mastodon.social/users/est/updates/11744 Maybe it can be simplified like twitter's URL https://mastodon.social/est/11744 https://mastodon.social/est/11744
- midgetjones 10y agoOne 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.
- hypercluster 10y agoI 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.
- daveid 10y agoYes, 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.
- VertexRed 10y agoLooks 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?