Hacker News new | past | comments | ask | show | jobs | submit login
Mastodon 3.0 (github.com/tootsuite)
296 points by Kye on Oct 4, 2019 | hide | past | favorite | 90 comments



I just started using Mastodon and I'm pretty impressed with it as a product. But I think you need to approach it in a different way from Twitter and Facebook to really see all the benefits. If everyone just signs up to a major instance like mastodon.social, some of the problems you see on platforms like Twitter and Facebook will just be re-introduced as the number of users grows.

The programmer/artist Darius Kazemi has done a great job articulating a way to use decentralized social networks like Mastodon in a "human-centric" way: "How to run a small social network site for your friends." [1]

I really hope the Fediverse can succeed and thrive, and Mastodon is a big part of that.

[1]: https://runyourown.social


How would a home node cope with dynamic IPs, not having a registered domain name etc? I mean, my flat broadband connection would allow say 10 Mb both down and uplink dedicated to a small Mastodon instance 24/7 at virtually zero cost without me even noticing, but my ISP changes my IP every night so that I'd be a moving target for anyone willing to connect. Hosting is a solution, but it costs money. Are there any means of connecting a node to the Mastodon network without being forced to look for fixed IP and a DNS name? Admittedly I have no experience with Mastodon, although it intrigues me, so be patient:)


As far as I know, having a fixed IP address or domain name is a requirement – Mastodon is decentralized in a different way from P2P protocols.

This is one of the reasons that the article I linked to above recommends a community-based approach. friend.camp (Darius' instance) uses a Patreon to cover the (fairly small) costs of hosting, registration, etc. I think a lot of users donate something like $1-$5/ year.

Running an entire server just for personal use may be overkill in terms of time-investment, monetary costs, etc. But for a small group of users these costs are negligible, and the small community still gets the benefits of having a lot of control over how the instance operates (who to federate with, custom features, etc).

We are used to thinking in terms of solutions that are either totally individualistic (everyone for themselves) or rely on giant monolithic institutions. A system made up of small, autonomous communities which can still communicate is a nice middle-ground.


How do you expect to provide a web service without a domain and an ever-changing IP? This isn't a Mastodon problem.

Use a dynamic dns provider, it'll give you a domain name that changes your IP record as it changes.


"How do you expect to provide a web service without a domain and an ever-changing IP?"

My thoughts were that if Mastodon nodes connect each other so that anyone on any node can communicate with anyone on a different node, can't nodes with dynamic IPs set up persistent connections to reachable nodes so that those will work as a sort of DNS?


> If everyone just signs up to a major instance like mastodon.social, some of the problems you see on platforms like Twitter and Facebook will just be re-introduced as the number of users grows.

Wouldn't this problem be mitigated by allowing users to migrate everything to other instances?


Also take a look at PeerTube (https://joinpeertube.org/en/) a federated youtube if you find mastedon interesting. Peertube is also using activitypub and can be used with Mastedon.

Shameless self-plug. I'm currently working on a peertube android client which you can find here: https://github.com/sschueller/peertube-android


What does using peertube with mastedon look like, and vice versa?


Videos appear similar to YouTube embeds in toots when viewed through Mastodon.

Put Blender's PeerTube account in Mastodon's search for an example: https://video.blender.org/accounts/blender


I'm truly amazed by the Mastodon team. After several years, they keep delivering major features on a regular basis.

Even on my own projects, on a much smaller scale, I've never been able to go that fast.


I think we can namedrop Gargron and Thib at this point. The amount of work they put into this is staggering.


Hmm, I'm not sure if it says something about me or the current state of tech that I find "regularly adding major features" to be a bad thing. Not that I really know (or care) anything about Mastodon or its problem space in particular, it's just the concept itself that makes me weary. I'd rather have something simple and stable and understandable. Maybe that's why I still use IRC.


For a project as young as Mastodon, major features are still necessary to meet people's expectations of a modern social network user experience.

But you can use IRC: https://wiki.bitlbee.org/HowtoMastodon


I haven't used Twitter or Facebook in years, but I had been relying on Google+ to follow quite a few Linux / FOSS developers. When G+ died I joined a Mastodon instance (linuxrocks.online) and have been really enjoying it. I found quite a few interesting developers, including people like Drew Devault. YMMV, but I think everyone should give it a try just to see how impressive the platform is.

Now, to see a few more services jump on the fediverse wagon and work together so we can have some choice... ;)


Can you link some of those interesting developers? I haven't found many interesting devs to follow yet.

Already found Drew here: https://cmpwn.com/@sir



Hmmm, would've been useful if I could see those as a 'grouped' timeline to get an impression of the posted content and follow people with content you like. (As opposed to clicking on hundreds of links individually)

It would even be more useful if you could have a dynamically rendered timeline of multiple people with a single URL (sort of like a multireddit).


As somebody who has followed exactly one person before seeing these links, I appreciate the list. But wow, is there no better way to follow than a three click operation?

click one: click "follow" initially

click two: submit id to home server, "proceed"

click three: yes, really "follow" and click again

Also, those lists intersect quite a bit.


This site could ask you to sign in with your home instance first, then Follow would be a single click operation as it could call the appropriate API call on your home instance. (It could even show you which ones you already follow in that case.) It would require quite a bit more code though to get the OAuth flow in place.

The Twitter bridge takes this approach. https://bridge.joinmastodon.org/

It's open source and could be used as example code for the community list tool. (https://source.joinmastodon.org/mastodon/bridge)


The bridge died when Eugen deactivated his personal Twitter. He couldn't get an API key for the project account.


It does have a Minimum Viable Product feel.

https://alexschroeder.ch/software/Trunk

As far as custom issue trackers go, this one isn't too bad. You could suggest an improvement. If you know perl, you could even write your own extension to provide this functionality.


That's only the flow if you click "follow" when you're looking at a profile on a third party server. If you come across that same profile in your server's federated timeline, it's a one click operation.


Paste link/username into the search box above the new toot box, hit return, the user will appear in the UI of your home server, hit the ‘follow’ button, done.

Probably about the same number of clicks, admittedly, but it may feel faster.


Have you seen the Pleroma? It's like mastadon but written in elixir so it's really snappy. It's made by a group of friends : Lain, the rabbit, mama rinpatch, and hj. I really like it. It looks more like classic Twitter and it's able to run on a rasperry pi. It even includes a mastadon front end, called Glitch.

https://pleroma.social/


> mastadon

Mastodon. Don't worry, seeminglyneveryone makes that mistake. Hell, the first version of the Gab fork called it that all over.

> It's like mastadon

Sort of. It started out with a "we want to be just indie enough to not attract mainstream attention" (but as I've heard they switched to wanting to be for everyone now). This is why it might seem less polished to end users.

> It even includes a mastadon front end, called Glitch.

Glitch is an entirely different thing. It's somewhere between a fork and a patchset. They keep up with upstream code and it hasn't been rare to see glitch features merged into the core version.

What you're speaking of is Mastofe, the frontend code. Pleroma uses the one modified by Glitch.

https://glitch-soc.github.io/docs/

https://git.pleroma.social/pleroma/mastofe


What about Elixir makes things "snappy"?


maybe it's just the way they're written or the frameworks they use, I just assume it's the language -- but Pleroma consumes fewer resources than Mastodon or Gab


Just for the record, it's MastOdon, not MastAdon :) It seems to be a common mistake.


Looks they also released a huge update recently too https://git.pleroma.social/pleroma/pleroma/-/releases

Neat


Do you happen to know any of their contact info? I've tried many times to find an email for them on their website to no avail, maybe I'm blind.


https://git.pleroma.social/pleroma/pleroma/issues

Maybe that will help. They'd also respond on their activitypub profiles most likely.


Freenode #pleroma

Freenode #pleroma-dev


Changes of note: an interface for the account migration activity that was added to the backend a few releases ago, built-in OCR for easier image captions, an option to disable live timeline updates, and custom emoji categories.


Can someone make (or point to) a brief overview of the most significant changes/improvements in version 3.0?



What are the minimum system requirements for Mastadon? I cannot decide what VPS I need to rent.


Mastodon takes about the same amount of usage as any rails app. For a small instance (less then 20 active users) I generally recommend 1GB of RAM and 2 CPUs.

the storage requirements can get pretty beefy over time though, so make sure to set up cheap block storage.


Why 2 CPUs? Isn't the Ruby interpreter single-threaded like Python and JavaScript?


An introduction to forking web servers and multi-process concurrency is outside the scope of this comment thread, but the general idea is that you can run multiple processes per server, and each process can handle connections independently without needing to handle concurrency itself. Threading is only one way of achieving concurrency


If you're only looking to set up some fediverse software and you're not attached to Mastodon, then you should consider Pleroma, which has significantly lower minimum requirements.


Mastodon.social (masto.host) actually sell mastodon instances.

I host my own that I've split into three layers, web front, app and db.

The web front only runs nginx and terminates tls. I tried building assets on it to serve static assets but gave up after a few upgrades and issues.

Web front only has 1G total RAM and right now has 595M available for IO buffering.

The app layer can sometimes run out of RAM when upgrading because of asset compiling. Perhaps this has gotten better with time. It has a total of 6G RAM and at present has 3.4G available for IO buffering. The only reason it has 6G total is likely because of upgrades causing OOM when compiling assets.

I put all media on S3 and that is up to around 35G in size after 1 year of operation and 50 some users. Probably much less active users. The database uses 4.3G.


masto.host is not affiliated with mastodon.social or the Mastodon project. It's an independent managed hosting provider run by Hugo Gameiro (@hugo@masto.pt)


If this is a production system and not a dev or test environment, don't deploy to a single server. Avoid single points of failure in your prod environment.


Just curious: what all breaks with the removal of OStatus support?


Federation with old GNU Social instances. Most active communities using GNU Social have since migrated to ActivityPub-compatible software like Mastodon and Pleroma, but a couple of them are using a work-in-progress plugin developed by dansup that provides ActivityPub compatibility. I don't know the status of the plugin—my understanding is that it's incomplete and not under active development, but I may be wrong.


Atom feeds are gone, although IIRC there is still an RSS feed but it doesn't contain boosts .

The removal of the Atom feed broke my feed embed service [1] until I patched in ActivityPub support.

[1] https://www.mastofeed.com/


Federation with GNUSocial, at the very least. Issue #256 [0] - add support for ActivityPub - was opened two years ago, but it doesn't look like it got added yet.

[0]: https://git.gnu.io/gnu/gnu-social/issues/256


GNU social development is slow. Pleroma exists if you want to talk to people on both systems.

ActivityPub was led by someone working on another GNU project, MediaGoblin.

I personally recommend people to Pleroma at this point.


Mediagoblin is one of those projects that I really want to like, but can't. Admittedly the last time I tried to install it was a year ago, but I remember the installation process being incredibly finicky, and more often than not, resulting in a broken site.

And I'm no newbie to this. I've been comfortably RTM'ing and CLI'ing and admin'ing in various Linux flavours (and the occasional *BSD) for over two decades, after I cut my teeth on Slackware 2.something. I've often built LFS just for fun. I've been replacing a gaggle of Excel/Access crap at work with my own homemade golang web apps, despite us not being a tech company at all and me not being a pro developer, just because I know I can do a better job. The point I'm trying to make is that I'm not afraid of putting in effort to learn how to do something complex on a computer. But the Mediagoblin install process broke me each time.

But I wholeheartedly agree about Pleroma. It's a fantastic choice for someone looking to host a reasonably-sized microblogging community on truly minimal hardware. It's fast and stable.


I’m a cofounder of both MediaGoblin and founder and then cofounder of GNU social after the merge with StatusNet.

I’ve given up hope on both projects at this point, but MediaGoblin in particular a long while ago.


What are some interesting accounts to subscribe to?


What are you interested in?


A variety of things. I asked to see if there was anything people wanted to recommend.


I see a huge opportunity for the incumbent social media services to start thinking about white-labeling their apps for organizations and to adopt ActivityPub in order to do so.

Effectively this is the "G Suite" model: preserve auth and identity within an organization's existing set of namespaces.


If Mastodon is truly decentralized, then someone ought to be able to leverage the identities (and possibly other data) in it to create a tool that has more Facebook-like features for this wanting something different than a Twitter clone. Is this underway?


I believe Friendica tries to behave more Facebook like and also uses the ActivityPub protocol.

This site keeps track of some of the various AP projects: https://fediverse.party/


anyone successfully got mastodon to work with nextcloud, and use it on daily basis?

Thanks


Figured a license change was in order given the Gab use case.


Now this would be a dangerous precedent, if I've ever heard of one.


And how would you do that? There is no copyright assignment happening here.


It'd also be expensive and damn close to impossible to enforce.

You say "Assholes aren't allowed to use this code" and Major-General Asshole will use it anyway -- because he's an Asshole.

Some battles simply aren't worth the resource cost of fighting them.


I've noticed the mastodon user community makes an unusual amount of impossible demands like that. I really wonder why.


Sometimes a public statement of intent is worth it.


You cannot prevent that usecase from happening ever. Bad actors will always use open source software.


What is going on here?

Mastodon does not come with features that enable the idea of "groups"?

I just found issue 139 [0], but "mastodon groups" is an extraordinary bad combination of search terms.

The author seems to dismiss the idea that "groups" are an obvious requirement (IMHO) for any "social" software. Instead he seems to be assuming that one instance of the software might serve one "group" - with no easy way to scale "instance" to many servers.

Pleroma seems to plan for a groups feature [2][3], also using a framework that might be much easier for scaling, but seems to be struggling with implementation.

I see GNU social seems to have groups [1], but in the linked issues people write about bugs with that.

I am not sure this is really how it is, so please correct me if I am wrong.

Would anybody with more knowledge please like to explain why such a basic feature is missing from "social" software alternatives?

I want to understand what the problem is here, I feel like this is the first feature that should be considered from day one. It seems to me trying to handle such a basic feature as an afterthought has a high potential for disaster score (PFD>80): will require a deep re-design and rewrite, trigger several different implementations, standards and endless discussions, in the end will destroy everything.

I understand that groups and p2p / federation is complicated - but is this not a solved problem?

If not, is it a good idea to put this on top of the agenda for "offer alternative for big social brother"?

[0] https://github.com/tootsuite/mastodon/issues/139 [1] https://gnusocial.net/doc/groups [2] https://git.pleroma.social/pleroma/pleroma/issues/656 [3] https://git.pleroma.social/pleroma/pleroma-fe/issues/625

No, tags can not replace groups.


You take this one "flaw" in your view and explode it into a major usability limitation that makes the whole software useless. If this was the case the platform would not be growing and developing as quickly as it is.

So maybe it isn't really that big of a deal?


> You take this one "flaw" in your view and explode it into a major usability limitation that makes the whole software useless.

No, I did not do that.

I do not want to discuss if "groups" is a "big deal" or not.

I am interested in the question if "groups" in distributed, federated systems is a solved problem or not.


There are people working on this. See for example https://github.com/wmurphyrd/guppe.

One of the creators had a conversation with kaniini, one of the pleroma devs, about this: https://social.coop/@datatitian/102893246730611249


Mastodon is an alternative to Twitter and not Facebook.


Which is sad IMO as Twitter - again IMNSHO - is one of the most overhyped and useless ideas there is.

I still have an account on mastodon thought and I'm far more active there than on twitter, mostly because new is interesting and to support a good cause.

I also sometimes follow development and hope that it might get more features from both Google+ or Facebook. Groups would be an obvious improvement in my book.

That way maybe it could become more than a twitter clone, which matters to me because in my opinion Twitter is close to useless except as a better way to receive spam and propaganda (it is even easier to ignore than the spam folder in my mail.)


I want to try Mastodon because it's open, federated, ethical etc, all the qualities I seek out in the software I run (not to mention new and interesting, like you say).

But at the end of the day it's still a Twitter clone, so offers absolutely no value to me.


> But at the end of the day it's still a Twitter clone, so offers absolutely no value to me.

Agree in the long run.

In the short run playing with interesting tech has its own value at least as long as it only replaces more useless stuff (I guess tv is the thing I "sacrifice" to have time for tech.)


Twitter is also very limited regarding groups, yes, this is right. Still very successful, but no groups. Makes it unusable for many use cases.


> Mastodon is an alternative to Twitter and not Facebook.

And that is the one reason I haven't already started a Mastodon instance and tried to talk all my family and friends into using it instead of Facebook.

Some people like everything to be public; fine. But some people, like me, want to be able to control who sees stuff; as far as I can tell, the only platform which allows that at the moment is Facebook.

Why not make "groups" an option, so that it can serve both kinds of people?


...because Mastodon is an alternative to Twitter, and not Facebook?

Last I checked, Twitter doesn't have groups.


That like saying making a phone that can take pictures is insane, because it is a phone and those are just meant to make calls.


Or, it's like saying that a browser that has a built-in email client is insane.

Usually, focusing on doing one thing only is how you make good products.


The old Opera had an excellent integration with its M2 email client. There's also Seamonkey.

Most email programs use a built-in rendering engine anyway, and sometimes browsers can actually use the email code (e.g. MHTML is basically MIME+HTML, HTML sanitization[0], Opera used M2 for RSS support). So a browser having a built-in email client might be undesirable, but it is not "insane".

[0]https://frederik-braun.com/firefox-ui-xss-leading-to-rce.htm...


Right, that is a better formulation of that argument: "Not currently in scope of this project" is better than: "This is a clone of X".


Browsing the web and reading / sending email are fundamentally different tasks. Twitter and Facebook are fundamentally the same thing. The key difference is that Facebook allows you to limit posts to specific people.

Mastodon not implementing a "limited visibility" option would be more like a web browser refusing to implement Private Browsing mode.


I love this example. Off topic but like yourself I too remember when camera phones were first released and most people (including myself) did shrug it off as an insane novelty which would never catch on. It didn't help that the resolution on those things were barely better than the original Nintendo Gameboy camera.

It's funny how something that seemed so insane at the time is now the de facto standard way of taking pictures.


I think this is a very limited (and limiting!) view of the world, that it should be one or the other, and that features cannot be borrowed from both.


Limiting scope is a very important part of delivering software.


If groups are what you want, why not use a fork that already has groups?


which fork has groups?


Gab has groups at least.


Using the Gab fork is basically asking to be in as many instance blocklists as you can.


Well, there is Diaspora, which has had groups (they call them "aspects") for many years now. I like it more than Mastodon, which is about as useless as Twitter.


I agree this is really frustrating. Even twitter has group chats. How can you have a social app without groups? I also would love events - then I could get rid of facebook entirely.


Twitter's group chats are just DMs with multiple recipients, which Mastodon supports too.

In Mastodon (or most ActivityPub software), a DM thread can even be splitted and recipients added/removed at any point.




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

Search: