I’ve been mulling the idea of extending mastodon. Think about it similarly to how you currently use plugins for Wordpress. Additional functionality is added by the owner/admin or other users with privileges to do so. They can be added through the admin dashboard, or programmatically. An extension uses a set of hooks setup by the system itself and doesn’t mess around with the core functionality in anyway. Decoupling the system itself and ability to upgrade from any installed extensions.
The ultimate power is in giving people the ability to create their own spaces, their own communities, to modify the software as they see fit, but without sacrificing the ability of people from different communities to interact with each other.
– Eugen Rochko, Feb 20 2017, “The power to build communities: A response to Mark Zuckerberg”