I wanted to check out Mastodon and looked into setting up a node. It's a nightmare of rube goldberg machine dependency hell. It's not that I can't, but that I don't have time to mess with it.
If decentralized system designers want these things to take off they must get better at writing clean code with a good UX. Start with a good UX for admins: single install, dependent on not much more than maybe a database or language runtime, easy upgrades, and good docs about how to get started. Then as the product matures work up to UX for end users. You will never get to the latter if you don't plan ahead a little and avoid design and runtime choices that drag in heaps of complexity or limit portability.
Decentralized protocols are maturing, but UX is still awful. I think UX is half the problem.
The other half the problem is defending against attacks. In today's world where computer networks and even simple services on them like discussion platforms can be targets for professional criminals and even national intelligence agencies, anything that gets popular will get seriously attacked. Centralized systems are far more straightforward to defend: block IPs, kick off users, update software in one place, etc.
People like to hold up cryptocurrency as one system that has withstood constant attack, but that is only true if you limit scope to the protocol. As a holistic system cryptocurrency has been and continues to be successfully attacked with social engineering. Scammers are siphoning billions out of the cryptocurrency economy. On centralized economic systems like banks and exchanges you can ban, freeze funds, delist, and regulate.