All solutions should be free software as defined by the FSF. https://www.gnu.org/philosophy/free-sw.html* The freedom to run the program as you wish, for any purpose.
* The freedom to study how the program works, and change it so it does your computing as you wish.
* The freedom to redistribute copies so you can help others.
* The freedom to distribute copies of your modified versions to others.
This will help prevent no-platforming and cancellation at a software license level.
All core protocols should be unencumbered by intellectual property.This will help prevent centralized ownership and control of the infrastructure.
Technical users are encouraged to host their own federated solutions.We can bypass the issues of scaling by having many interconnected platforms maintained by the community.
We can each maintain the communities and content we want.
We can each have our own tribes with our own subjective rules.
We can encourage users who aren't a good fit for a specific community to host their own, or use someone else's compatible infrastructure.
We should gladly share our tools for community creation with everyone.
The goal is to allow communities to exist and communicate even if we don't want to be a part of those communities.
Bridging to other communities is fine.It is fine to use non-free protocols and code when necessary to hook into existing big tech communities.
Discord, Facebook, Twitter, Reddit, Steam, etc.
A core goal should be to eventually migrate contacts on those networks to federated services eventually.
Sites hosting these solutions are allowed to profit.Hosts should be honest and up front about what is done with the data and how money is being made.