Almaember's free software development guidelines
The rules are structured into levels. If there are conflicts between levels, the previous levels take precedence.
Keep in mind this does not currently apply to websites, only desktop, server, mobile, etc. software and applications.
The user is the person who installed the software and operates it.
Level 1: User rights
- The software must be licensed with a free software license
- The software must not take deliberate action to restrict the users access to their computer, unless the user has set up said restrictions (for example, a login password)
- The software must obey the user's instructions unconditionally, and may not limit the user beyond a reasonable level (for example, you should validate the To address in an email client, but you shouldn't prevent the user from copying text from a PDF with permission bits)
Level 2: Privacy protection
- The software should take appropriate actions to protect the users privacy and anonymity (this is a broad, general rule, and should be interpreted based on the type of software)
- The software should not connect to third-party services without the users consent, unless reasonably expected (for example one can expect a YouTube frontend to connect to YouTube)
Level 3: Standards complience
- The software should comply with appropriate standards, unless doing so violates one of the Level 1 rules (for example, PDF permission bits are part of the standard but should be ignored)
- The software should only amend/change the standard if there is a logical reason to do so