draft structure doc
# The Website League's structure(sort of, we'll get there)
## The Law Round These Parts
Joining the Website League means a few things. For starters, you, the node you create or sign up on, and everyone else in the League is agreeing to abide by the Website League Code of Conduct(link tk). You should take a moment to review it; it's a long, formal document, but it does a great job of outlining what's expected. It's also not that far off from what would be expected on other social media services, but a bit more in line with our specific philosophies for how such a service should be run.
Most of it is pretty straightforward - don't post anything that's strictly illegal to post where you are, where the node is, or both. Put content warnings on anything that might be considered objectionable; if you're unsure, a CW can be helpful just in case. If you wouldn't want to get caught opening it by accident in a public place, a CW makes a good "better safe than sorry" policy.
If you *can't*, or *won't*, abide by the CoC, your node staff is required to take action. That could be just a warning, but if it becomes a problem, you may be "politely asked to leave"(read: kicked out and banned). If a node operator refuses to do something about it, the rest of the League may vote to defederate from your node, after which, well, your actions are your own, as are the consequences. On the flip side of this coin, if you see someone doing something that concerns you, or appears to violate the CoC, report it up to your node staff, or the staff of the node the individual is on. If they refuse to take action, let another steward know. We will do what we can to maintain your anonymity; no one should face retribution for trying to do the right thing.
This does also raise the question of what to do if a report is made in bad faith; these will also be investigated. We're hoping that most issues can be raised amicably, but things do happen, so if such a situation arises, the League will discuss among its membership and stewardship and agree on a course of action that does its best to keep everyone safe and, hopefully, discourage abuse in the future.
### The fullest extent of the jam
Currently, the only part of any node's website that is actually required to abide by the WL's code of conduct is their activitypub instance itself, and any users of those services. Other parts of individual websites, such as forums, irc servers, static pages, etc, are not required to comply by the code of conduct. It may be simpler for website operators to request that their users abide by the WL code of conduct on other parts of their site, but there are no (direct) consequences for not doing so, so long as the node staff clearly identify that the WL code of conduct is in effect while using their aPub services.
While the website league has no desire or capacity to enforce the Code of Conduct outside of the activitypub federation, if an objection to a node's continued membership in the League is made on the basis of content on the website outside of their aPub services, the League does reserve the right to evaluate this and can deny membership to a node if the objection cannot be resolved in an amicable manner. If you're worried that this might be the case, ask a steward to take a look.
## It's Like a Hierarchy In Here
### Stewards
Generally, the League operates as close to a flat structure as we can get away with. While it's unlikely that every individual who uses a League node will vote or even *want* to vote, if they choose to participate in the decision-making process, we encourage them to do so and are happy to have them on board. Our decision-making body is made up of **stewards**, who vote on proposals and work on necessary projects purely voluntarily. That said, the expectation is that if you say you are going to take on a task, that you follow through with it if you are able, or ask for assistance/someone else to take over if you are unable to do so.
The role of steward is open to pretty much everyone; individual node owners are encouraged, but not required, to take on the role, and other individuals are welcome to sign on as stewards, as long as no objections to their stewardship are raised among current members. If an objection *is* raised, it will be done so transparently if possible, and privately if not, but any objection will be investigated before a decision is made.
Regardless of whether they choose to be a steward or not, node staff are still required to abide by the Website League's code of conduct, and address issues within their own node, or respond to reports made by other node staff and/or stewards as needed. If they are unable to do so, it may jeopardize their standing in the League, but again, a decision will be made before any such response occurs, based on the severity of the issue at hand.
Stewardship is also not a strict requirement for involvement in ongoing Website League projects, though it may be helpful to request the role if you plan to contribute significantly. As mentioned, the role indicates not just a willingness to vote, but a desire to *help*, and makes it easier for everyone to keep track of who is actually working on projects for the League. Similarly, if you feel at any time that you would no longer be a steward for whatever reason, simply let your other stewards know. So long as you still feel like participating in the League, you are welcome to do so, steward or not.
### The governance process
Decision-making within the League is done by majority vote; a quorum based on the current number of active stewards is required for a decision to pass. All votes will be recorded on https://consensus.websiteleague.org, and anyone, steward or not, should be able to view them.
When a vote is concluded, it is expected that the Website League and its members will make whatever changes necessary to implement the result. If unable to do so, another vote may be called later on; it is entirely possible that a decision may be reversed if it turns out to be completly infeasible or prevailing opinion changes at some point. It's also possible that the voting process may become more strict if we see evidence of abuse, so please make sure you are being responsible with both your requests for votes, and your comments on votes, which are more or less a matter of public record once submitted. Harassment of League members or stewards through the Loomio system or in an attempt to influence a voting decision(or, anywhere else, for any reason) will not be tolerated.
### The infrastructure group
A central group of stewards familiar with the central infrastructure of the League has also been established for the purposes of maintaining and administering the platforms that are hosted on websiteleague.org; this is again a mostly voluntary role but it is not recommended that users or stewards request to be in the infrastructure group unless they are well familiar with the maintenance or administration of one or more of the platforms in use. Currently, membership in this group is fairly restricted as these individuals are essentially "key holders" for our central infra; if you wish to volunteer for this task, it may not be granted unless you have demonstrated your ability to be responsible with that authority.
## The infrastructure of the League
### Individual nodes
Node or instance staff, whichever terminology they choose, are expected to be able to furnish their own environments, as well as install and maintain the software that serves their ActivityPub-compatible segment of the Website League federation. As we are all volunteers, it is unlikely that we can offer much in the way of financial assistance, but we are working hard on providing technical assistance both through documentation here on our Information site, as well as directly over Discord and Zulip as needed. Aspiring node operators(see, there's another term for the same thing!) should be aware that running a service like this can be a serious obligation, not only financially, but socially and mentally as well. If you are expecting to have open, or even restricted, membership on your node, you need to be prepared to take on moderation responsibility for the users under your care.
Again, we cannot stress this enough: *this is a fair amount of work!* If you are unsure that you can commit to having to tell other people what they can or cannot post sometimes, or if you are worried that the financial burden of running a server is going to be too much, ***do not run your own server!*** No one will think less of you for joining someone else's server, and you are still welcome to apply for stewardship if you wish to do so.
Nodes are not required to default to any stance regarding applications for new members. You are welcome to have as many users as you would like, or as few as you want. Again, though, don't take on more than you can handle; if you feel your node has grown too large to manage, consider closing membership and working with other node operators to perhaps encourage some of your membership to migrate until you reach manageable levels again.
A special note should be made for the "what if" scenario of wanting to run a node that federates both with "the Fediverse", whatever form that takes for them, and the Website League. This is provisionally allowed(though, if it proves to be a problem, this may change), but any node that chooses to be involved with the Website League is required to operate according to our Code of Conduct in all interactions, not just those with League members. Additional requirements and restrictions may also be suggested if problems occur in these cases; if necessary we may remove this allowance in the future.
### Software requirements
As far as software goes, any software with an implementation of ActivityPub that can demonstrably operate smoothly within our requirements is welcome. For the most part, that comes down to "are post statistics, publicly and otherwise, suppressable", and similar requirements for user profiles as well. Right now, work is being done on Akkoma and GoToSocial, which have proven to be suitable for our needs and relatively straightforward to make compliant, but other software packages are welcome, if they can be shown to work.
It also bears noting that both Akkoma and GoToSocial have particularly low-end system requirements, making them extremely suitable for running on virtual private servers without having to shell out for higher-end capabilities. Make sure that whatever software you're planning to run can be operated in your environment without causing too much strain! The biggest obstacle is going to be storage space; you may want to invest in S3-compatible "object storage" if your hosting provider offers it, or through other channels if necessary, especially if you plan on opening registrations to others.
If using software other than Akkoma or GoToSocial, you may want to try testing in a non-federated form to ensure that the software operates as it should before attempting to federate into the Website League. There are software packages that will let you run a web server off of your desktop computer for development purposes; there are enough flavors of these to make listing them here impractical but if you're looking for a suggestion, asking in our Discord is a good place to start.
### Central services of the Website League
All centralized services offered for the smooth operation of the Website League are expected to be hosted on https://www.websiteleague.org unless otherwise noted. At the time, the following services are available:
* Our public discord, [LINK HERE], will remain available as it is the lowest barrier for entry for prospective or new users, and makes a good "meeting square" for more informal topics and discussion.
* A GoToSocial instance has been established at https://broadcast.websiteleague.org to act as a sort of "embassy" between the greater fediverse and the Website League environment, as a central point for announcements and other important dispatches. Currently, this is the only node on the Website League that is required to federate with the greater fediverse as a whole, and it is meant strictly for "official business"-style communication.
* Documentation, such as this one you are reading now, as well as our code of conduct, setup guides, and other information, will be hosted on our Bookstack service at https://information.websiteleague.org. Anyone can apply for an account; new users are set into a "viewer" role but the ability to edit pages can be granted by members of the infrastructure group upon request.
* All governance voting and discussion beyond the informal request for a vote to be called will take place on our internal Loomio service at https://consensus.websiteleague.org. As membership confers a voting stake, it is restricted to current stewards, but all voting results and discussion are publicly viewable.
* A Zulip service is being put together to provide a central place for League users, stewards, and infrastructure operators to chat; this will operate separately from the Discord and be primarily for discussion, support, and informal chat between current members, whereas the Discord will eventually transition more into a "welcome center" role for new and prospective users to get started.
* An additional project is underway to synchronize the allowlist used by all League nodes; a human-readable list will also be made available, likely through our Bookstack.
### Expenses for central infrastructure
Currently, expenses for the central Websiteleague.org website and everything associated with it are being subsidized by League members voluntarily. We expect to keep costs *manageable*; if it becomes necessary to solicit donations we will establish a transparent way to do so.
## Keeping the lights on
As mentioned above, node staff are responsible for their own operating expenses. Donations and other financing can be solicited, if you so choose. We have no expectation of being asked to audit anyone's finances, nor do we really have the resources to do so. Conversely, we don't have the ability at present to step in if the burden of running a node becomes too much for anyone, so keep that in mind. We're going to keep saying this: if you are unsure if you can financially, mentally, or emotionally maintain running a social media website, either work with others to lessen the burdens, or join an already established node.
There are guidelines in the Code of Conduct that apply as far as generating revenue from a League-associated node is concerned. As a brief summary, don't run paid advertisements, don't require payment to join a node, don't run scams(or things that can be interpreted as scams!), and don't do anything that would interfere with the smooth operation of your node, other nodes, or anyone's computer like a crypto miner or malware. You're more than welcome to pass the hat, solicit donations, or what you need to, but please respect that everyone's financial situation is unique to them, and not everyone may be able to help every time.
It is suggested that node staff stick as close to the minimum requirements for hosting as possible, especially if they are attempting a project such as this for the first time. Akkoma requires something like 2GB of RAM and a single CPU core, and GoToSocial can run off 1GB and a single core, so more than that isn't necessary to start out. You can always add more power to a hosted server later on, but it's not always possible to maintain a standard of operation if you go the other direction, so be mindful.
Again, please don't overextend yourself. If it is impractical for you to invest in running your own server, DO NOT RUN YOUR OWN SERVER. Your basic needs are vastly more important than anything we are doing here, and we understand that. If you're dead-set on doing it, organize with your friends who are also interested, and see if you can split the costs between yourselves. Draft a plan, decide on individual responsibilities, and make sure no one feels like they are pulling more of the weight than anyone else.
## Anything you can do I can do better!
We're not experts. We might be people with *expertise*, but a lot of this is uncharted waters for us. We're relying on the people who want to help to help us, with the goal of making a space we're all uniquely proud to call a part of our shared experience together. We're all volunteers. That may change, but there's a high likelihood that it won't, and we're trying to be realistic about that. So long as your suggestions are made in good faith, and you're willing to submit them to group consensus and possible revision, they are welcome here. Join our Discord! Apply for stewardship! If you think you can help, you owe it to yourself to try. ~~I literally have no experience building a leftist community and they put me in charge of writing all this. follow your dreams~~
If you really think that you can't contribute here, organize a community for you! There's basically nothing stopping you. We can't really offer support if you decide not to join the Website League, but the whole point of all this is to build something that can be shared. If you decide not to share back, that's on you, not us, but we hope some day that we can come to an agreement that helps all of us build a better space for ourselves online.
One last thing: If you see behavior that violates the CoC, report it, even if you have no interest in joining. Reports made in good faith will be investigated, and we won't tolerate actions that put our community at risk by targeting others who haven't decided to join us.