feat: convert to an astro application (!9)

Reviewed-on: https://codeberg.org/nhcarrigan/docs/pulls/9
Co-authored-by: Naomi Carrigan <commits@nhcarrigan.com>
Co-committed-by: Naomi Carrigan <commits@nhcarrigan.com>
This commit is contained in:
2024-08-23 23:49:24 +00:00
committed by Naomi the Technomancer
parent 2898736099
commit 4cc44ae423
43 changed files with 4727 additions and 1368 deletions

View File

@ -0,0 +1,99 @@
export const navigation = [
{
label: "About Us",
items: [
{
label: "Hire us!",
link: "/about/hire"
},
{
label: "Support Our Work 💜",
link: "/about/donate"
},
{
label: "Contact",
link: "/about/contact"
}
]
},
{
label: "Legal Information",
items: [
{
label: "Terms of Service",
link: "/legal/terms"
},
{
label: "Privacy Policy",
link: "/legal/privacy"
},
{
label: "Software License",
link: "/legal/license"
},
{
label: "Security Policy",
link: "/legal/security"
},
{
label: "DMCA and Copyright",
link: "/legal/dmca"
}
]
},
{
label: "Community Policies",
items: [
{
label: "Code of Conduct",
link: "/community/coc"
},
{
label: "Community Guidelines",
link: "/community/guide"
},
{
label: "Appeal a Sanction",
link: "/community/appeal"
}
]
},
{
label: "Development Documentation",
items: [
{
label: "Contributing Guide",
link: "/dev/contributing"
},
{
label: "Contributor Covenant",
link: "/dev/covenant"
},
{
label: "Issue/PR Labels",
link: "/dev/labels"
},
{
label: "Development Environment",
link: "/dev/environment"
},
{
label: "Server Setup",
link: "/dev/servers"
}
]
},
{
label: "Staff Guidelines",
items: [
{
label: "Staff Handbook",
link: "/staff/handbook"
},
{
label: "Join our Team",
link: "/staff/apply"
}
]
}
]

6
src/content/config.ts Normal file
View File

@ -0,0 +1,6 @@
import { defineCollection } from 'astro:content';
import { docsSchema } from '@astrojs/starlight/schema';
export const collections = {
docs: defineCollection({ schema: docsSchema() }),
};

View File

@ -0,0 +1,20 @@
---
title: About Us
template: splash
hero:
tagline:
Learn more about Naomi, her consulting firm nhcarrigan, and our communities.
actions:
- text: Hire us!
link: /about/hire
icon: right-arrow
variant: secondary
- text: Support our Work 💜
link: /about/donate
icon: right-arrow
variant: primary
- text: Appeal a Sanction
link: /community/appeal
icon: right-arrow
variant: secondary
---

View File

@ -0,0 +1,449 @@
---
title: Contact Policy
---
**Effective 7 July 2024**
## 1. Support and Communication Channels
### 1.1 Public Support Channels
We offer FREE support through several PUBLIC channels, including:
- Community Forums
- Public GitHub Issues
- Open Discord Servers
- Social Media Platforms
These channels are ideal for:
- General inquiries about our projects
- Bug reports and feature requests
- Community discussions and knowledge sharing
- Open-source collaboration opportunities
### 1.2 Private Support Options
While we encourage the use of public channels, we understand that some situations may require private communication. Please note:
- Private support is a premium service and may be subject to fees.
- We reserve the right to invoice you for private support services.
- Billing is based on the anticipated workload for your query.
- Responses to private queries will be provided only after invoice payment is confirmed.
To request private support, please contact us through `support@nhcarrigan.com`.
### 1.3 Engagement Opportunities
Our platforms offer various ways to engage with our projects and community:
- Request support for technical issues
- Express interest in contributing to our open-source projects
- Seek mentorship in software development
- Participate in casual discussions with our team and community members
### 1.4 Platform Directory
Below, you'll find a comprehensive list of our official communication platforms. Each platform serves specific purposes and caters to different types of interactions. Please choose the most appropriate channel for your needs to ensure the fastest and most effective response.
## 2. Account Verification
### 2.1 List of Verified Accounts
We maintain a comprehensive list of all our verified accounts across different platforms. This list is regularly updated to reflect any changes or additions to our official online presence.
- View our verified accounts: https://cdn.nhcarrigan.com/socials.txt
### 2.2 GPG Key for Verification
To ensure the integrity of our verified accounts list, we use GPG (GNU Privacy Guard) encryption. You can download our public GPG key to verify the authenticity of the list.
- Download our GPG key: https://cdn.nhcarrigan.com/key.pgp
### 2.3 Verification Process
Follow these steps to verify the integrity of our verified accounts list:
- Download both the verified accounts list and our GPG key from the links provided above.
- Open a terminal or command prompt on your system.
- Navigate to the directory where you saved the files.
- Run the following command:
```
gpg -f /path/to/key --verify /path/to/socials
```
Replace `/path/to/key` with the path to the downloaded GPG key file, and `/path/to/socials` with the path to the downloaded verified accounts list.
If the verification is successful, you'll see a message confirming the signature is valid.
### 2.4 Importance of Verification
Verifying our accounts helps you:
- Avoid impersonation attempts
- Ensure you're interacting with official channels
- Protect yourself from potential scams or misinformation
### 2.5 Reporting Suspicious Accounts
If you encounter an account claiming to represent us but not listed in our verified accounts:
- Do not engage with or share sensitive information with the account
- Report the suspicious account to us immediately through one of our verified channels
- If possible, report the account to the platform it's on for impersonation
### 2.6 Staying Updated
We recommend checking our verified accounts list periodically, as we may add new official accounts or remove outdated ones. Always use the verification process to ensure you have the most current and authentic list.
## 3. Real-Time Communication Platforms
### 3.1 Discord Server
Our Discord server is the primary and most active platform for real-time communication.
- Join Link: https://chat.naomi.lgbt
- Features:
- Fastest response times
- Multiple topic-specific channels
- Voice chat capabilities
- Integration with our projects and bots
- Best for: Quick support, community discussions, and live collaboration
### 3.2 Matrix Space
For those who prefer an open-source alternative to Discord, we maintain a Matrix space.
- Join Link: https://matrix.to/#/#naomis:matrix.org
- Features:
- Decentralized and open-source
- End-to-end encryption for private messages
- Cross-platform compatibility
- Best for: Privacy-conscious users and those who prefer open protocols
### 3.3 IRC Channels
For users who prefer traditional IRC, we maintain channels on LiberaChat.
- Network: LiberaChat
- Channels:
- #nhcarrigan - Main support and discussion channel
- #nhcarrigan-chat - Casual conversation and community chat
- Connection Guide: LiberaChat Connection Guide
- Features:
- Lightweight and accessible from various clients
- Suitable for users with limited bandwidth
- Familiar interface for long-time internet users
- Best for: Users comfortable with traditional IRC interfaces and those seeking a minimal, text-based chat experience
### 3.4 Platform Choice Guidelines
- Discord: Recommended for most users, especially those seeking quick responses or community interaction.
- Matrix: Ideal for users prioritizing privacy and open-source solutions.
- IRC: Best for those who prefer a classic, lightweight chat experience or are using older hardware.
### 3.5 Etiquette and Best Practices
- Please be respectful and follow the community guidelines on all platforms.
- Use appropriate channels or rooms for your queries to ensure the fastest response.
- Before asking a question, check if it has been answered in pinned messages or FAQs.
- When seeking help, provide as much relevant information as possible.
## 4. Announcements and Updates
### 4.1 Reddit Board
Our Reddit board serves as the primary hub for official announcements and updates.
- URL: https://www.reddit.com/r/nhcarrigan/
- Nature: This board is read-only.
- Content:
- Project updates and new releases
- Important community announcements
- Event notifications
- Major policy changes
- Best for: Comprehensive, detailed announcements and long-form updates
### 4.2 Social Media Platforms
For more frequent and concise updates, we cross-post select announcements to our social media accounts.
#### 4.2.1 Twitter
- Account: @naomi_lgbt
- Content:
- Brief announcements and updates
- Quick tips and insights
- Community engagement
#### 4.2.2 Mastodon
- Account: @naomi_lgbt@mastodon.social
- Content:
- Similar to Twitter
- Greater focus on personal activities
### 4.3 Interacting with Announcements
- Reddit: The board is read-only. For questions or discussions about announcements, please use our Discord server or other interactive platforms.
- Twitter and Mastodon: You can reply to posts or @mention us with questions or comments. We encourage community engagement on these platforms.
### 4.4 Best Practices for Staying Informed
- Subscribe to Multiple Channels: Each platform may have slightly different content. Following multiple channels ensures you don't miss any important updates.
- Enable Notifications: Consider enabling notifications for critical updates on your preferred platform.
- Regular Check-ins: If you prefer not to use notifications, we recommend checking these channels regularly, especially before starting work on or with our projects.
- Cross-Reference: Major announcements will typically be posted across all platforms. If you see something important on one channel, you can cross-reference it on others for any additional details.
### 4.5 Emergency or Critical Updates
For time-sensitive or critical announcements:
- We will use all available channels to ensure maximum reach.
- Such announcements will be clearly marked as urgent or critical.
- We may use additional notification methods (e.g., email for registered users) for extremely critical updates.
### 4.6 Historical Announcements
- All announcements on our Reddit board are archived and remain accessible for future reference.
- While social media posts may have limited visibility over time, all major announcements will be permanently available on Reddit.
## 5. Professional Engagement and Portfolio
### 5.1 LinkedIn Profile
LinkedIn serves as our primary professional networking platform.
- Profile URL: https://linkedin.com/in/naomi-lgbt
- Purpose:
- Professional networking
- Career history and accomplishments
- Skills endorsements and recommendations
- Best for:
- Potential employers or clients
- Professional collaborators
- Industry peers
#### 5.1.1 Connecting on LinkedIn
When sending a connection request, please include a brief message explaining your interest. We typically respond to LinkedIn messages within 2-3 business days.
### 5.2 Peerlist Profile
As an alternative to LinkedIn, we maintain a presence on Peerlist, a platform focused on tech professionals.
- Profile URL: https://peerlist.io/naomi_lgbt
- Purpose:
- Showcase technical projects and contributions
- Highlight specific skills and technologies
- Connect with other tech professionals
- Best for:
- Tech-focused recruiters and companies
- Fellow developers and engineers
- Open-source collaborators
#### 5.2.1 Engaging on Peerlist
Feel free to explore our projects and contributions on Peerlist. You can leave comments or questions on specific items in our portfolio.
### 5.3 Professional Inquiries
When reaching out for professional reasons, please consider the following:
- Clear Purpose: State the reason for your contact (e.g., job opportunity, collaboration, consultation).
- Relevant Background: Provide brief context about yourself or your company.
- Specific Questions: If you have particular queries, include them in your initial message.
### 5.4 Services
For details about our services and past work, visit our portfolio: https://nhcarrigan.com
### 5.5 Speaking Engagements and Events
If you're interested in having us speak at your event or contribute to your publication:
- Check our LinkedIn or Peerlist profiles for recent talks or articles.
- Reach out with specific details about your event or publication.
- Provide information about the audience, topic, and any other relevant details.
### 5.6 Keeping Professional Connections Updated
We regularly update our professional profiles with new projects, skills, and achievements. Follow us on these platforms to stay informed about our professional journey and potential opportunities for collaboration.
## 6. One-on-One Sessions
We offer personalized, one-on-one sessions to cater to various needs, from casual conversations to in-depth consultations. Book your session through our Topmate profile.
### 6.1 Coffee Chat
A casual, informal conversation to connect and share ideas.
- Duration: 15 minutes
- Purpose:
- Get to know Naomi
- Discuss general topics in tech
- Share experiences and insights
- Best for:
- Students looking for career advice
- Professionals seeking to expand their network
- Anyone interested in a friendly chat about tech and open source
### 6.2 Consulting Session
A focused, one-on-one session to discuss potential new projects and align our services with your needs.
- Duration: 30 minutes
- Purpose:
- Explore your project requirements in detail
- Discuss how our services can meet your needs
- Provide estimated quotes for the proposed work
- Best for:
- Developers stuck on a particular problem
- Project managers seeking technical guidance
- Startups needing expert input on their tech stack
### 6.3 Mentorship Session
An in-depth, personalized session focused on long-term professional growth and skill development.
- Duration: 1 hour
- Purpose:
- Provide career guidance and development strategies
- Offer personalized learning plans and resources
- Review and provide feedback on code or projects
- Best for:
- Early-career developers seeking guidance
- Professionals looking to transition into tech
- Anyone seeking structured, long-term professional development
### 6.4 How to Book a Session:
- Visit one of:
- Our topmate profile: https://topmate.io/nhcarrigan
- Our fiverr profile: https://www.fiverr.com/nhcarrigan
- Select the type of session you need (Coffee Chat, Consulting, or Mentorship)
- Select an available time slot
- Complete the booking process and payment
### 6.5 Preparing for Your Session:
- Coffee Chat: Come with topics you'd like to discuss or questions about the industry
- Consulting: Prepare a clear description of your problem or project, and any relevant code or documentation
- Mentorship: Outline your career goals and areas where you'd like to improve
### 6.6 Additional Information:
- All sessions are conducted virtually via a video call in our Discord server.
- Payment is required at the time of booking
- Rescheduling is possible with at least 24 hours notice
For any questions about these sessions or to discuss a different type of engagement, please reach out through our preferred contact methods listed in previous sections.
## 7. Email Communication
> [!WARNING]
> Email communication is considered a paid service and will be invoiced.
We offer several email addresses for specific types of inquiries. Please use the appropriate email address to ensure your message reaches the right team and receives the most efficient response.
### 7.1 General Inquiries
- Email: contact@nhcarrigan.com
- Use for:
- General questions about our services or projects
- Partnership or collaboration proposals
- Media or press inquiries
- Any queries that don't fit other categories
### 7.2 Billing and Financial Matters
- Email: billing@nhcarrigan.com
- Use for:
- Questions about payments or invoices
- Inquiries about outstanding balances
- Refund requests
- Updating billing information
### 7.3 Technical Support
- Email: support@nhcarrigan.com
- Use for:
- Assistance with using our software or services
- Reporting bugs or technical issues
- Documentation clarifications
### 7.4 Privacy Concerns
- Email: privacy@nhcarrigan.com
- Use for:
- Questions about our privacy policy
- Requests for data access or deletion
- Reporting potential privacy breaches
- Opting out of data collection (where applicable)
### 7.5 Security Matters
- Email: security@nhcarrigan.com
- Use for:
- Reporting security vulnerabilities
- Questions about our security practices
- Concerns about potential security breaches
### 7.6 Legal Inquiries
- Email: legal@nhcarrigan.com
- Use for:
- Legal questions or concerns
- Copyright or trademark issues
- Requests for legal documentation
- Formal notices or communications
### 7.7 Feedback and Suggestions
- Email: feedback@nhcarrigan.com
- Use for:
- Providing feedback on our work or projects
- Suggesting improvements or new features
- Sharing your experience with our services
- Offering ideas for future developments
### 7.8 Email Communication Guidelines
- Subject Line: Please use a clear, concise subject line that summarizes your inquiry.
- Content: Provide all relevant details in your initial email to expedite the response process.
- Attachments: If sending attachments, please mention them in the email body and ensure they are in common file formats.
- Response Time: We aim to respond to all emails within 2 business days. Complex inquiries may require additional time.
- Follow-ups: If you haven't received a response after 3 business days, feel free to send a polite follow-up.
### 7.9 Email Privacy and Security
All email communications are treated as confidential.
We do not share your email address or the content of your messages with third parties unless:
- Required by law; OR
- As part of a public warning related to a violation of our Code of Conduct
### 7.10 Spam and Unsolicited Emails
We have a strict no-spam policy. If you receive any unsolicited emails claiming to be from us, please report them to security@nhcarrigan.com.
By using the appropriate email address for your inquiry, you help us provide you with the most efficient and accurate response possible. If you're unsure which email to use, feel free to send your inquiry to contact@nhcarrigan.com, and we'll direct it to the appropriate team.
### 7.11 Acceptable Use and Consequences
We are committed to maintaining a respectful and productive communication environment. To ensure this:
- All email communications should be professional and respectful.
- Harassment, threats, or abusive language will not be tolerated.
- Spam or excessive unsolicited emails are prohibited.
- Attempting to use our email system for malicious purposes (e.g., phishing, spreading malware) is strictly forbidden.
> [!ATTENTION]
> Abuse of our email system or violation of these guidelines will result in your email address being blocked from sending communications to any of our addresses. This block may be temporary or permanent, depending on the severity and frequency of the abuse.
If you believe your email has been blocked in error, please contact us through an alternative method listed in this document to request a review of the situation.
We reserve the right to report serious abuses to relevant authorities if necessary.
By communicating with us via email, you agree to adhere to these guidelines and understand the consequences of misuse.

View File

@ -0,0 +1,57 @@
---
title: Support Our Work 💜
---
**Effective 7 July 2024**
We are passionate about creating and maintaining free-to-use projects and providing guidance in various programming communities. Your support helps us continue this mission and expand our efforts.
## 1. Why Support Us?
- **Free Resources**: We offer numerous projects that are free for everyone to use and learn from.
- **Community Guidance**: We actively participate in programming communities, offering help and mentorship.
- **Open Source Contributions**: Your support enables us to dedicate more time to open source development.
- **Continuous Improvement**: Donations help us improve existing projects and create new ones.
## 2. How Your Support Helps
- Covers hosting and infrastructure costs
- Allows us to dedicate more time to project development and community support
- Enables us to invest in better tools and resources
- Supports our ongoing education and skill development
## 3. Ways to Support
We offer several platforms for monthly donations, allowing you to choose the one that works best for you:
### 3.1 Discord
- Join our community and support us directly
- Link: [https://chat.naomi.lgbt](https://chat.naomi.lgbt)
- Benefits: Exclusive roles, behind-the-scenes updates
### 3.2 Ko-Fi
- Perfect for one-time or recurring donations
- Link: [https://ko-fi.com/nhcarrigan](https://ko-fi.com/nhcarrigan)
- Benefits: Public shout-outs, exclusive posts
### 3.3 Patreon
- For those who prefer tier-based support
- Link: [https://www.patreon.com/nhcarrigan](https://www.patreon.com/nhcarrigan)
- Benefits: Varied rewards based on tier level
### 3.4 GitHub Sponsors
- Support us directly on the platform where we contribute
- Link: [https://github.com/sponsors/naomi-lgbt](https://github.com/sponsors/naomi-lgbt)
- Benefits: Recognition in GitHub profile, exclusive repository access
## 4. Other Ways to Help
- **Spread the Word**: Share our projects and resources with others who might benefit.
- **Contribute**: If you have skills to offer, consider contributing to our open source projects.
- **Provide Feedback**: Your input helps us improve and refine our work.
## 5. Thank You!
Every contribution, no matter the size, makes a significant impact. We deeply appreciate your support and are committed to using it to benefit the wider programming community.
For any questions about donations or to discuss other support options, please contact us at donors@nhcarrigan.com.

View File

@ -0,0 +1,68 @@
---
title: Hire us!
---
**Effective 7 July 2024**
We're excited about the opportunity to collaborate with you and contribute to the success of your goals. Our team brings a wealth of experience and a passion for delivering high-quality solutions tailored to your specific needs.
!["If you knew I was so unstable, why'd you hire me?](https://cdn.nhcarrigan.com/hire.jpeg)
## 1. Our Services
- **Discord Bot Development**: Custom bots to enhance your server's functionality
- **Web Development**: From simple websites to complex web applications
- **Community Management**: Strategies to grow and maintain thriving online communities
- **Technical Consulting**: Expert advice on your tech-related projects and decisions
## 2. Engagement Options
We offer flexible ways to work together, catering to projects of all sizes and complexities:
### 2.1. Quick Sync (15 minutes)
For those with a well-defined product idea or seeking a quick review of their community plan, book a [quick sync](https://topmate.io/nhcarrigan/913917).
- Ideal for: Initial project discussions, quick advice, or community plan reviews
- Duration: 15 minutes
- Outcome: Rapid insights and direction for your project
### 2.2. In-Depth Consultation (30 minutes)
For more complex, long-term, or in-depth projects, we recommend booking an [in-depth consultation](https://topmate.io/nhcarrigan/913920).
- Ideal for: Detailed project planning, technical strategy discussions, or exploring long-term collaborations
- Duration: 30 minutes
- Outcome: Comprehensive project assessment and tailored recommendations
### 2.3. Private Mentorship Package
For those seeking personalized guidance and skill development, we offer a full [mentorship package](https://topmate.io/nhcarrigan/913932).
- Ideal for: Individuals looking to enhance their skills in development, community management, or related areas
- Duration: Multiple sessions as per the package
- Outcome: Personalized learning path, hands-on projects, and ongoing support
### 2.4. Fiverr Booking Option
For those who prefer to book through Fiverr, we offer the same consultation services through our [Fiverr package](https://www.fiverr.com/nhcarrigan/schedule-a-30-minute-one-on-one-with-you-to-discuss-your-consulting-needs).
- Platform: Fiverr
- Services: Same as above, as tiers in a single gig
- Benefit: Utilize Fiverr's platform features and protection
## 3. Why Choose Us?
- **Expertise**: Years of experience in development and community management
- **Flexibility**: Multiple engagement options to suit your needs and preferences
- **Personalized Approach**: Tailored solutions for your unique challenges
- **Commitment to Quality**: Delivering high-value insights and solutions in every interaction
## 4. Ready to Get Started?
1. For a quick discussion: [Book a 15-minute sync](https://topmate.io/nhcarrigan/913917)
2. For in-depth consultations: [Schedule a 30-minute slot](https://topmate.io/nhcarrigan/913920)
3. For ongoing mentorship: [Explore our mentorship package](https://topmate.io/nhcarrigan/913932)
4. To book via Fiverr: [Check out our Fiverr gig](https://www.fiverr.com/nhcarrigan/schedule-a-30-minute-one-on-one-with-you-to-discuss-your-consulting-needs)
Not sure which option is right for you? Feel free to contact with any questions. We're excited to explore how we can help bring your ideas to life and contribute to your success!

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,20 @@
---
title: Community Information
template: splash
hero:
tagline:
We offer the following documents to assist you in engaging with our community in a meaningful way.
actions:
- text: Community Guidelines
link: /community/guide
icon: right-arrow
variant: primary
- text: Code of Conduct
link: /community/coc
icon: right-arrow
variant: primary
- text: Appeal a Sanction
link: /community/appeal
icon: right-arrow
variant: secondary
---

View File

@ -0,0 +1,36 @@
---
title: Appealing a Sanction
---
**Effective 7 July 2024**
Our moderators exercise careful discretion when implementing disciplinary measures (including but not limited to temporary suspensions, permanent bans, or other access restrictions). However, we acknowledge that misunderstandings or errors may occasionally occur.
If you believe you have been unjustly restricted from participating in our community, you may initiate our formal appeal process as outlined below.
## 1. Preparing Your Appeal
Prior to submitting an appeal, please ensure you have the following information ready:
1. Confirmation that you have thoroughly reviewed and understood our Community Guidelines and Terms of Service.
2. An explicit statement of your commitment to adhere to all applicable rules and policies.
3. Your understanding of the specific sanction levied against you and the alleged violation(s) cited.
4. A clear and concise explanation of why you believe the moderation decision was erroneous or disproportionate.
5. A statement detailing your motivations for seeking reinstatement and the potential positive contributions you intend to make to our community.
Please note that incomplete or inadequately prepared appeals may be summarily dismissed.
## 2. Appeal Submission Process
To submit your appeal, please complete the form available at the following link:
[Submit a Sanction Appeal](https://airtable.com/app4JjHyeaBqt4vVH/pagOIWG3ZBEGRD8oW/form)
## 3. Important Disclaimers
- Submission of an appeal does not guarantee its approval.
- The decision of the appeals review panel is final and binding.
- We reserve the right to deny or revoke access to our services at any time, for any reason, at our sole discretion.
- Repeated violations or abuse of the appeals process may result in permanent ineligibility for reinstatement.
By submitting an appeal, you acknowledge that you have read, understood, and agree to abide by the terms outlined in this document.

View File

@ -0,0 +1,476 @@
---
title: Code of Conduct
---
**Effective 7 July 2024**
## 1. Definitions
### 1.1. "Our Community"
Encompasses all platforms and spaces, both digital and physical, where members interact under our organization's auspices. This includes, but is not limited to:
- Our official Discord server
- Our code repositories and associated accounts
- Our official social media accounts and pages
- Any other online forums or platforms we officially endorse or manage
- In-person events organized or sponsored by our organization
### 1.2. "Community Members"
Refers to all individuals who participate in Our Community, regardless of their role or level of engagement. This includes casual users, regular contributors, and community leaders.
### 1.3. "Community Leaders"
Refers to individuals with official responsibilities within Our Community, including but not limited to:
- Moderators
- Developers
- Support staff
- Administrators
- Project managers
- Event organizers
### 1.4. "Code of Conduct" or "CoC"
Refers to this document in its entirety, including all sections, subsections, and any future amendments.
### 1.5. "Violating the Code of Conduct"
Means engaging in behavior that contradicts the guidelines, rules, and principles outlined in this document.
### 1.6. "Reporting"
Refers to the act of bringing a potential Code of Conduct violation to the attention of Community Leaders through officially designated channels.
### 1.7. "Sanctions"
Refers to the consequences imposed on community members who violate the Code of Conduct, as determined by Community Leaders.
### 1.8. "Platforms"
Refers to any digital or physical space where Our Community interacts, as listed in section 1.1.
## 2. Scope
### 2.1. Applicability
This Code of Conduct applies to all interactions within Our Community, including but not limited to:
- Public channels and forums
- Private channels and direct messages
- Online and offline community spaces
- Community-organized events and meetups
- Any form of communication using our official platforms or branding
### 2.2. Extended Scope
The Code of Conduct may also apply to interactions outside Our Community when:
- A Community Member is involved in an incident affecting another Community Member
- The incident has a substantial impact on the well-being or participation of Community Members
- The behavior significantly affects the reputation or integrity of Our Community
### 2.3. Temporal Scope
This Code of Conduct applies to:
- Current interactions within Our Community
- Past behavior of Community Members, including actions prior to joining Our Community
- Ongoing patterns of behavior that may have started before joining Our Community
### 2.4. Reporting
We encourage reporting of any violations of this Code of Conduct, including:
- Harassment by Community Members, especially Community Leaders
- Incidents that occur outside Our Community spaces
- Past incidents, regardless of when they took place
### 2.5. Commitment to Action
Community Leaders commit to:
- Take all good-faith reports seriously
- Respect the privacy and security of reporters
- Conduct fair and thorough investigations of reported incidents
- Take appropriate action based on the findings of investigations
### 2.6. Exclusion Rights
Community Leaders reserve the right to exclude individuals from Our Community based on:
- Violations of this Code of Conduct
- Past behavior, including actions outside Our Community spaces
- Behavior towards individuals who are not members of Our Community
- Any conduct deemed detrimental to the safety, well-being, or positive environment of Our Community
### 2.7. Scope of Authority
While this Code of Conduct primarily governs behavior within Our Community, we recognize that actions outside our spaces can significantly impact our environment. Therefore, Community Leaders may consider external behaviors when making decisions about community participation.
### 2.8. Amendments
The scope of this Code of Conduct may be amended as necessary to address emerging concerns or changing circumstances within Our Community. Any changes will be clearly communicated to all Community Members.
## 3. Rules and Prohibited Conduct
### 3.1. General Conduct
- No trolling, insulting, or derogatory comments.
- No harassment, whether public or private (see section 3.2 for detailed definition).
- No incitement of violence towards any individual, including encouraging suicide or self-harm.
- No deliberate "outing" of any aspect of a person's identity without their consent, except to protect vulnerable individuals from intentional abuse.
- No publication of non-harassing private communication without explicit consent from all parties involved.
- No advocating for members to be banned, except in direct messages to or private discussions with community leaders.
- No spam or excessive self-promotion.
### 3.2. Harassment
Harassment includes, but is not limited to:
- Deliberate misgendering or use of rejected names
- Unwanted physical contact or simulated physical contact without consent
- Threats of violence or intimidation
- Stalking or following
- Unwanted photography or recording, including logging online activity for harassment purposes
- Unwelcome sexual attention
- Pattern of inappropriate social contact, such as requesting/assuming inappropriate levels of intimacy
- Continued one-on-one communication after requests to cease
- Targeted and deliberate aggression
- Sustained disruption of discussion or community events
### 3.3. Respect for Identity and Diversity
- No questioning or challenging someone's stated self-identity or chosen labels.
- No unwelcome comments regarding a person's lifestyle choices and practices, including those related to food, health, parenting, relationships, drugs, and employment.
- No offensive comments related to gender, gender identity and expression, sexual orientation, disability, mental illness, neurodiversity, physical appearance, body size, age, race, national origin, ethnic origin, nationality, immigration status, language, religion or lack thereof, or other identity markers.
- No use or promotion of "reverse"-isms, including "reverse racism," "reverse sexism," and "cisphobia" against marginalized members.
- No debating the rights and lived experiences of marginalized people in the community.
- No racist, sexist, cissexist, ableist, or otherwise oppressive behavior, whether casual or explicit.
### 3.4. Content and Communication
- No explicit sexual images or behavior.
- No use of slurs or hateful terminology.
- Content warnings should be used when discussing potentially triggering topics.
### 3.5. Intellectual Property and Privacy
- Respect copyright and intellectual property rights.
- Do not share personal information of others without their explicit consent.
### 3.6. Community Discussions and Debates
- Engage in respectful and constructive dialogue.
- Be open to learning from others' perspectives.
- Avoid derailing discussions or intentionally inflaming tensions.
### 3.7. Reporting and Enforcement
- Report violations of this Code of Conduct to community leaders promptly.
- Cooperate with community leaders during investigations of reported incidents.
- Respect the privacy of individuals involved in reports and investigations.
### 3.8. Compliance with Platform-Specific Rules
- Adhere to the terms of service and community guidelines of any platforms used by Our Community.
- Be aware that certain behaviors may violate platform rules even if not explicitly mentioned in this Code of Conduct.
### 3.9. Amendments and Interpretations
- These rules may be amended or expanded as necessary to address emerging issues.
- Community leaders reserve the right to interpret these rules and make decisions in cases where the application of rules may be unclear.
## 4. Reporting and Response Procedures
### 4.1. Reporting Methods
- In Discord: Type @Moderator in any channel to alert community leaders.
- Direct Message: Contact a community leader directly via private message.
- Email: contact@nhcarrigan.com
### 4.2. Information to Include in Reports
- Your contact information (unless reporting anonymously)
- Names or descriptions of individuals involved
- Description of the incident, including date, time, and location (online or physical)
- Any relevant screenshots, chat logs, or other evidence
- Any additional context you believe is important
### 4.3. Handling of Reports
- We will respond to all reports as promptly as possible.
- If a reported violator is on our staff team, they will be immediately recused from handling the incident.
- All reports will be handled with discretion and confidentiality to the extent possible.
### 4.4. Confidentiality and Privacy
- We will respect confidentiality requests, especially to protect victims of abuse.
- Anonymous reporting options are available, though they may limit our ability to investigate.
### 4.5. Public Statements and Warnings
- At our discretion, we may publicly name a person about whom we've received harassment complaints.
- We may privately warn third parties about individuals if we believe it will increase community safety.
- We will not name harassment victims without their explicit, affirmative consent.
### 4.6. False Reports and Abuse of Process
- We reserve the right to reject reports we believe to have been made in bad faith.
- Reports intended to silence legitimate criticism may be dismissed without response.
- Deliberately false reporting is a violation of this Code of Conduct and may result in sanctions.
### 4.7. Protection of Reporters and Victims
- We will take all reasonable steps to protect reporters and victims from retaliation.
- Retaliation against reporters or victims is a serious violation of this Code of Conduct.
### 4.8. Investigation Process
- We will conduct a thorough and impartial investigation of all reports.
- Investigations will be conducted as quickly as possible while ensuring thoroughness.
- All parties involved will be given an opportunity to present their perspective.
### 4.9. Outcomes and Appeals
- After investigation, we will determine appropriate actions based on the evidence.
- We will communicate outcomes to involved parties as appropriate, respecting privacy concerns.
- An appeals process will be available for individuals who believe a decision was made in error.
### 4.10. Continuous Improvement
- We will regularly review our reporting and response procedures to ensure their effectiveness.
- Feedback on these procedures is welcome and will be considered for future improvements.
### 4.11. Support for Community Leaders
- We recognize the potential for burnout among our volunteer moderators and leaders.
- We will provide support and resources to our community leaders to help them manage their responsibilities effectively.
## 5. Sanctions and Enforcement
### 5.1. General Principles
- Participants must immediately comply when asked to stop any harmful behavior.
- Community leaders may take any appropriate action in response to harmful behavior.
- All sanctions will be applied fairly, consistently, and proportionally to the violation.
### 5.2. Authority of Community Leaders
- Community leaders have the right and responsibility to remove, edit, or reject contributions not aligned with this Code of Conduct.
- Leaders commit to applying these principles fairly and consistently in all aspects of community management.
- Leaders who fail to follow or enforce the Code of Conduct may be permanently removed from their position.
### 5.3. Privacy and Security
- All community leaders are obligated to respect the privacy and security of incident reporters.
- Information about sanctions will be shared on a need-to-know basis.
### 5.4. Gradated Sanction System
Community leaders will follow these Community Impact Guidelines in determining consequences:
#### 5.4.1. Level 1: Reminder
- Example Behavior: Use of inappropriate language or other behavior deemed unprofessional or unwelcome.
- Consequences:
- A public, written reminder from community leaders
- Clarification of the violation and why the behavior was inappropriate
- A public apology may be requested
#### 5.4.2. Level 2: Warning
- Example Behavior: A violation through a single incident or series of actions.
- Consequences:
- A formal warning
- Clear communication of consequences for continued behavior
- Incident is logged for future reference
#### 5.4.3. Level 3: Temporary Removal
- Example Behavior: A serious violation of community standards or sustained inappropriate behavior.
- Consequences:
- Temporary removal from community platforms (e.g., Discord kick)
- Clear conditions for return, including a cooling-off period
- Requirement to re-read and acknowledge the Code of Conduct before rejoining
#### 5.4.4. Level 4: Permanent Ban
- Example Behavior: Pattern of violations, sustained inappropriate behavior, harassment, or aggression towards individuals or groups.
- Consequences:
- Permanent ban from all community platforms
- Public statement may be made, if deemed necessary for community safety
### 5.5. Additional Sanction Considerations
- Repeated violations will generally result in escalating sanctions.
- The severity of the violation may warrant skipping levels in the sanction system.
- Community leaders may impose additional requirements, such as public apologies or community service, as conditions for continued participation.
### 5.6. Appeals Process
- Individuals may appeal sanctions by [completing the form](/community/appeal)
- Appeals will be reviewed by leaders not involved in the original decision.
- During the appeal, the original sanction remains in effect.
### 5.7. Documentation and Transparency
- All formal sanctions will be publicised for review and consistency.
- Aggregate data on Code of Conduct violations and sanctions may be published periodically to ensure transparency.
### 5.8. Rehabilitation and Education
- Where appropriate, we will provide resources and support for individuals to learn from their mistakes and improve their behavior.
- For less severe violations, completion of educational programs may be offered as an alternative or supplement to other sanctions.
### 5.9. Legal Implications
- In cases of illegal activity, appropriate legal authorities may be notified.
- Our sanctions do not preclude or replace any legal action that may be warranted.
### 5.10. Regular Review
- This sanction system will be reviewed periodically to ensure its effectiveness and fairness.
- Community feedback on the sanction system is welcome and will be considered in reviews.
## 6. Moderation Logs and Transparency
### 6.1. Purpose of Moderation Logs
- To ensure transparency in moderation sanctions
- To maintain accountability of the moderation team to community members
- To provide a clear record of enforcement of the Code of Conduct
### 6.2. Scope of Logged Actions
- All moderation sanctions across all community platforms will be logged
- This includes, but is not limited to:
- Warnings issued
- Temporary removals or suspensions
- Permanent bans
- Appeals and their outcomes
### 6.3. Location of Moderation Logs
- All moderation sanctions will be publicly logged in the `#mod-logs` channel in our Discord community
- The log will be accessible to all community members
### 6.4. Information Included in Logs
- Date and time of the action
- Type of action taken
- Reason for the action
- Platform where the violation occurred
- Identifier of the user who received the action
- Identifier of the leader who performed the action
- Any relevant evidence
### 6.5. Privacy Considerations
- In cases where privacy is crucial (e.g., harassment reports), certain details may be omitted or generalized
### 6.6. Accessibility of Logs
- The moderation log channel will be read-only for regular community members
- Community members can request clarification on logged sanctions through appropriate channels
### 6.7. Retention of Logs
- Moderation logs will be retained for a period of no less than 1 year.
- After this period, logs may be archived or summarized for long-term record-keeping
### 6.8. Audit and Review
- Moderation logs will be periodically reviewed by community leadership to ensure consistency and fairness in enforcement
- Annual reports summarizing moderation actions may be published to the community
### 6.9. Dispute Resolution
- If a community member believes a moderation action was taken in error, they can refer to the logs and follow the appeals process outlined in the Sanctions section
### 6.10. Moderator Accountability
- Patterns of biased or inconsistent moderation will be addressed by community leadership
- Moderators who consistently fail to log their actions may have their privileges revoked
### 6.11. Feedback and Improvement
- Community members are encouraged to provide feedback on the moderation log system
- The logging process will be reviewed periodically and may be adjusted to better serve the community's needs
## 7. Advertising and Promotion
### 7.1. General Prohibition
- Advertising and self-promotion are generally not permitted within our community spaces.
- This includes, but is not limited to, unsolicited promotion of products, services, websites, social media accounts, or other communities.
### 7.2. Exceptions
- Links or information expressly requested by our team for support or moderation purposes.
- Sharing of resources directly relevant to ongoing discussions, when done in good faith and not for commercial gain.
- Official announcements or promotions approved by community leadership.
### 7.3. Support and Moderation Contexts
- Community members may be asked to provide links or information to assist with support inquiries or moderation investigations.
- In these cases, sharing such information is permitted and encouraged.
### 7.4. Relevance and Context
- Any shared links or information must be directly relevant to the current discussion or inquiry.
- The relevance and appropriateness of shared content will be at the discretion of community leaders.
### 7.5. Disclosure of Affiliations
- If sharing information about a product or service with which you have a personal or professional affiliation, this affiliation must be clearly disclosed.
### 7.6. Consequences of Violation
- Violations of this policy will be treated as a breach of the Code of Conduct.
- Consequences may range from content removal to temporary or permanent bans, depending on the severity and frequency of violations.
### 7.7. Appeals and Clarifications
- If you are unsure whether specific content would be considered advertising, consult with a community leader before posting.
- If your content is removed under this policy, you may appeal the decision through the established channels outlined in the Sanctions section.
## 8. Languages
### 8.1. Official Language
- The official language of our community is English.
- All community interactions, discussions, and contributions should be in English.
### 8.2. Scope of English-Only Policy
- This policy applies to all community spaces, including but not limited to:
- Discord channels
- GitHub discussions and issues
- Documentation
- Official communication channels
### 8.3. Multilingual Applications
- Even if our applications or services are offered in multiple languages, community discussions about them must be conducted in English.
### 8.4. Rationale
- To ensure clear communication among all community members.
- To facilitate effective moderation and support.
- To maintain consistency across all community platforms.
### 8.5. Exceptions
- Specific channels or sections designated for other languages, if explicitly created and approved by community leadership.
- Brief translations to assist non-native English speakers, when immediately followed by an English translation.
### 8.6. Support for Non-Native Speakers
- We encourage patience and understanding towards non-native English speakers.
- Community members are encouraged to help clarify or rephrase messages if there's a language barrier, while maintaining English as the primary language.
### 8.7. Translation Tools
- While automatic translation tools may be used personally, the original English content should be included in all community interactions.

View File

@ -0,0 +1,452 @@
---
title: Community Guidelines
---
**Effective 7 July 2024**
## 1. Introduction
Welcome to our community. These guidelines are designed to foster a safe, respectful, and productive environment for all members. While not exhaustive or legally binding, adherence to these principles is strongly encouraged to maintain the integrity and value of our community.
### 1.1. Purpose
The purpose of these Community Guidelines is to:
1. Promote positive interactions and meaningful discussions
1. Protect the well-being and rights of all community members
1. Maintain a welcoming atmosphere for diverse perspectives and backgrounds
### 1.2 Scope
These guidelines apply to all forms of interaction within our community, including but not limited to:
- Forum discussions
- Comment sections
- Direct messaging
- Live events or webinars
- Social media interactions associated with our community
### 1.3 Encouragement to Participate
We highly value your contributions and encourage you to:
1. Actively engage in discussions and share your knowledge
2. Provide constructive feedback and support to fellow members
3. Report any concerns or violations to the community moderators
4. Suggest improvements to enhance the community experience
### 1.4 Code of Conduct
While many aspects of our Community Guidelines are recommendations, our Code of Conduct establishes non-negotiable standards that ALL community members MUST adhere to in ALL interactions within our community spaces.
Nothing in this guide may supercede or overwrite the Code of Conduct.
## 2. Interacting with Staff
### 2.1 Respect for Authority
Our staff team consists of trusted members empowered with tools to maintain community safety and harmony. While they strive for fairness and consistency, it's important to recognize their human nature and the potential for occasional errors.
### 2.2 Dispute Resolution Process
If you believe a staff decision was made in error or in bad faith, we encourage you to follow these steps:
1. Refrain from direct argumentation or confrontation with staff members.
2. Document the incident, including relevant details and any supporting evidence.
3. Submit an appeal through our official [appeal form](/community/appeal).
### 2.3 Appeal Process
- Appeals are reviewed by Naomi, who has exclusive access to the submission form.
- All appeals will be treated confidentially and impartially.
- Information from submissions will only be shared on a need-to-know basis to investigate and resolve the issue.
- Your identity will be protected; any revealed submission information will not be associated with your name.
### 2.4 Staff Accountability
We are committed to maintaining high standards of conduct for our staff. Any substantiated claims of misconduct or abuse of power will be addressed promptly and appropriately.
### 2.5 Continuous Improvement
We value your feedback on our moderation processes. If you have suggestions for improving our systems or policies, please submit them through the appropriate channels.
## 3. Plural Systems
### 3.1 Understanding Plurality
Plural systems refer to individuals who experience the presence of two or more distinct identities or personality states, often called alters. Our community recognizes and respects the existence of plural systems.
### 3.2 Inclusivity and Respect
1. Plural systems are fully welcome and valued members of our community.
2. We are committed to providing a safe and supportive environment for all system members.
3. Discrimination or harassment based on plurality is strictly prohibited.
### 3.3 Privacy and Boundaries
1. Respect the privacy of plural systems and their individual alters.
2. Do not pressure or attempt to coerce any system or alter to reveal information they are not comfortable sharing.
3. Refrain from trying to identify which alter is fronting or using a platform's plural proxying service.
### 3.4 Self-Disclosure
1. Systems have the right to disclose information about their alters at their own discretion.
2. Members are encouraged to respect the level of disclosure each system or alter chooses.
3. Unsolicited advice or attempts to "help" without consent are not appropriate.
### 3.5 Communication Guidelines
1. Address alters by their preferred names and pronouns when known.
2. If unsure about how to address a system or alter, it's acceptable to politely ask for clarification.
3. Be mindful that switching between alters may result in a difference of communication styles or preferences.
### 3.6 Education and Awareness
1. We encourage community-wide education about plurality to foster understanding and inclusivity.
2. Questions about plurality should be directed to appropriate educational resources rather than to individual systems, unless they have explicitly welcomed such inquiries.
## 4. Tone Tags
### 4.1 Purpose of Tone Tags
In text-based communication, the nuances of tone and intention can often be lost, leading to potential misunderstandings. To address this limitation, we encourage the use of tone tags. These tags provide additional context to messages, helping to clarify the intended tone and reduce misinterpretations.
### 4.2 When to Use Tone Tags
Consider using tone tags in the following situations:
- When your message could be interpreted in multiple ways
- If you're using sarcasm, humor, or other tones that might not be immediately apparent
- When discussing sensitive topics where clarity of intention is crucial
- If you're communicating with someone who has expressed difficulty interpreting tone in text
### 4.3 How to Use Tone Tags
- Place the tone tag at the end of your message or the relevant section
- Use forward slashes to enclose the tag, e.g., /j for joking
- You can use multiple tags if needed, e.g., /s /lh for sarcastic and light-hearted
- If you're unsure about a tag's meaning, refer to our community glossary or ask for clarification
### 4.4 Commonly Used Tone Tags
| Tag | Meaning |
| ---------------------- | ------------------------------------ |
| `/aff` | Affectionate |
| `/apa` | Apathetic |
| `/b` | Bitter |
| `/cel` | Celebratory |
| `/ci` | Caring Intent |
| `/cj` | Coping Joke |
| `/co` or `/cf` | Comforting |
| `/ex` | Exaggeration |
| `/f` | fake |
| `/fam` | Familial |
| `/fex` | for example |
| `/gen` or `/g` | Genuine |
| `/genq` or `/gq` | Genuine Question |
| `/gens` or `/gs` | Genuine Suggestion |
| `/hj` | Half Joking |
| `/hyp` | Hyperbole |
| `/ij` | Inside Joke |
| `/info` | Information |
| `/j` | Joking |
| `/jov` | Jokingly Overreacting |
| `/l`, `/ly` or `/lyr` | Lyrics |
| `/lh` | Lighthearted |
| `/li` or `/lit` | Literally |
| `/lu` | Little Upset |
| `/m` | Metaphorically |
| `/md` | Melodramatic |
| `/nav` | Not A Vent |
| `/nay` | Not At You |
| `/nbh` | Nobody Here (for vague venting only) |
| `/nbr` | Not Being Rude |
| `/nc` or `/neg` | Negative connotation |
| `/ncm` | Not Comparing |
| `/neu` | Neutral connotation |
| `/nf` | Not Forced |
| `/nm` | Not Mad (or upset) |
| `/np` | No Pressure |
| `/npa` | Not Passive Aggressive |
| `/nsx` or `/nx` | Non Sexual Intent |
| `/ny` | Not Yelling |
| `/op` | Optional |
| `/ot` | Off Topic |
| `/p` or `/plat` | Platonic |
| `/pc` or `/pos` | Positive connotation |
| `/q` | Quote |
| `/ref` | Reference |
| `/rh`, `/rt` or `/rhq` | Rhetorical Question |
| `/s` or `/sar` | Sarcastic |
| `/srs` | Serious |
| `/sym` | Sympathetic |
| `/t` | Teasing |
| `/tc`, `/ti` or `/tic` | Typing a tic |
### 4.5 Respecting Tone Tags
- When someone uses a tone tag, interpret their message accordingly
- If you're unsure about the meaning of a tag, ask politely for clarification
- Do not mock or belittle others for using tone tags
### 4.6 Accessibility Considerations
- Tone tags can be particularly helpful for neurodivergent individuals who may have difficulty interpreting tone in text
- Screen readers can often interpret tone tags, making them a useful tool for visually impaired users
### 4.7 Limitations of Tone Tags
- While helpful, tone tags are not a perfect solution and may not convey all nuances of communication
- They should be used as a supplement to clear writing, not a replacement for it
### 4.8 Community-Specific Tags
- Our community may develop additional tags specific to our discussions
- New tags will be added to our glossary after community consensus
## 5. Pronouns
### 5.1 Importance of Pronouns
Pronouns are an essential aspect of personal identity and respectful communication. Our community values and respects each individual's right to self-identify and be addressed correctly.
### 5.2 Displaying Pronouns
We strongly encourage all community members to display their pronouns:
- In your platform bio
- Using designated pronoun roles in our Discord community, or comparable feature on other platforms
- As part of your username or display name, if desired
### 5.3 Benefits of Sharing Pronouns
1. Clarity: Helps others address you correctly
2. Inclusivity: Creates a welcoming environment for all gender identities
3. Normalization: Reduces stigma around pronoun sharing
4. Education: Raises awareness about gender diversity
### 5.4 Normalizing Pronoun Sharing
By encouraging all members to share pronouns, regardless of gender identity or expression, we:
- Challenge the assumption that only transgender individuals share pronouns
- Create a safer space for transgender and non-binary individuals to share their pronouns without implicitly outing themselves
- Promote a culture of respect and understanding
### 5.5 Respecting Others' Pronouns
- Always use the pronouns a person has specified for themselves
- If you're unsure about someone's pronouns, it's appropriate to politely ask
- If you make a mistake, apologize briefly, correct yourself, and move on
### 5.6 Pronoun Options
While not exhaustive, common pronoun options include:
- She/her/hers
- He/him/his
- They/them/theirs
- Neopronouns (e.g., xe/xem/xyr, ze/zir/zirs)
- Any pronouns
- No pronouns (use name only)
### 5.7 Changing Pronouns
- Members are welcome to update their pronouns at any time
- Respect and use a person's current pronouns, even if you knew them by different pronouns previously
### 5.8 Pronoun Misuse
- Intentional misuse of pronouns (misgendering) is a form of harassment and violates our community guidelines
- Repeated accidental misuse, despite correction, may be addressed by moderation
### 5.9 Privacy Considerations
- While we encourage pronoun sharing, it is ultimately a personal choice
- Do not pressure others to share their pronouns if they are not comfortable doing so
## 6. Accessibility
Our community is committed to ensuring that all members, regardless of their needs, can fully participate and engage with our content. We encourage everyone to follow these accessibility guidelines to create a more inclusive environment.
### 6.1 Alt Text for Images
Alt text (alternative text) provides a textual description of images for those who use screen readers or cannot view images.
- Always include alt text when posting images.
- Describe the key elements of the image concisely.
- If the image contains text, include that text in the alt description.
Example: Instead of alt="meme", use alt="A cat wearing sunglasses with the text 'Deal with it' below"
### 6.2 Creating Accessible Content
#### 6.2.1 Descriptive Link Text
- Use descriptive link text that indicates where the link leads.
- Avoid using "click here" or "read more" as standalone link text.
Example: Instead of "Click here to read about our events", use "View our upcoming community events"
#### 6.2.2 Avoiding Flashing Content
- Do not post content that flashes more than three times per second.
- If you must share such content, provide a clear warning beforehand.
#### 6.2.3 Structuring Content
- Use headings to organize content hierarchically (H1, H2, H3, etc.).
- Break long paragraphs into shorter, more digestible sections.
- Use bullet points or numbered lists for easy scanning.
#### 6.2.4 Multimedia Content
- Provide captions for videos.
- Offer transcripts for audio content when possible.
### 6.3 Continuous Improvement
- We welcome feedback on how to improve our community's accessibility.
- Report any accessibility issues to the moderation team.
## 7. Content and Trigger Warnings
Our community is committed to creating a safe and respectful environment for all members. Content and trigger warnings play a crucial role in this effort by allowing individuals to make informed decisions about engaging with potentially distressing content.
### 7.1 Purpose of Content/Trigger Warnings
- To give members advance notice of potentially sensitive or disturbing content
- To allow individuals to prepare themselves emotionally or choose to avoid the content
- To promote a culture of empathy and consideration within our community
### 7.2 When to Use Warnings
Use content or trigger warnings when posting about:
- Graphic violence or gore
- Sexual content or explicit discussions of sexuality
- Abuse (physical, emotional, sexual)
- Self-harm or suicide
- Eating disorders or body image issues
- Substance abuse or addiction
- Mental health issues
- Phobias (e.g., spiders, heights, confined spaces)
- Political extremism or hate speech
- Natural disasters or traumatic events
- Flashing images or loud noises (for photosensitive epilepsy)
Remember, this list is not exhaustive. If you're unsure whether content needs a warning, err on the side of caution and provide one.
### 7.3 How to Use Content/Trigger Warnings
- Place the warning at the beginning of your post or message
- Use clear, specific language
- If possible, use spoiler tags or a "read more" cut to hide the sensitive content
Example formats:
"CW: Discussion of eating disorders"
"TW: Graphic description of violence"
"Content Warning: This post contains references to suicide"
### 7.4 Respecting Warnings
- Do not mock or belittle others for using or needing content warnings
- If someone asks for a warning on a specific topic, respect their request in future interactions
### 7.5 False Alarms and Overuse
While we encourage the use of content warnings, try to avoid overuse for mundane topics. This helps maintain their effectiveness for truly sensitive content.
### 7.6 Moderator Intervention
Moderators may add content warnings to posts if they deem it necessary. Repeated failure to use appropriate warnings may result in moderation action.
## 8. Conflict Resolution
Disagreements and conflicts can arise in any community. Our goal is to foster an environment where conflicts can be resolved respectfully and constructively. This section outlines the steps for resolving conflicts and when to involve moderators.
### 8.1 General Principles
- Treat all parties with respect, even in disagreement
- Assume good faith unless proven otherwise
- Focus on the issue, not personal attacks
- Be open to different perspectives and willing to compromise
### 8.2 Steps for Resolving Conflicts
#### 8.2.1 Direct Communication
- If you have an issue with another member, try to address it directly with them first.
- Use private messages to avoid public confrontations.
- Clearly and calmly explain your concerns, using "I" statements.
- Listen to their perspective without interrupting.
- Look for common ground and potential solutions.
#### 8.2.2 Cool-Down Period
If emotions are running high:
- Take a break from the discussion.
- Reflect on the issue and your role in the conflict.
- Return to the conversation when you can discuss it calmly.
#### 8.2.3 Seeking Mediation
If direct communication doesn't resolve the issue:
- Ask a neutral third party from the community to mediate.
- Both parties should agree on the mediator.
- The mediator should facilitate discussion, not take sides.
### 8.3 When to Involve Moderators
Involve moderators if:
- The conflict violates our Code of Conduct
- You feel unsafe or harassed
- The conflict is disrupting the broader community
- Previous attempts at resolution have failed
- You're unsure how to handle the situation
### 8.4 How to Involve Moderators
- Use the designated reporting system on the platform.
- Provide a clear, factual account of the issue.
- Include relevant screenshots or links if applicable.
- Explain steps you've already taken to resolve the conflict.
### 8.5 Moderator Actions
Moderators may:
- Facilitate discussion between parties
- Issue warnings or reminders about community guidelines
- Temporarily mute or suspend accounts
- Remove inflammatory content
- In severe cases, ban members who consistently create conflicts
### 8.6 Appealing Moderator Decisions
If you disagree with a moderator's decision:
- Wait 24 hours to ensure you can discuss it calmly
- Contact the moderation team through the appropriate channels
- Clearly explain why you think the decision should be reconsidered
- Be prepared to provide additional context or evidence
### 8.7 Conflict Prevention
To minimize conflicts:
- Re-read your posts before sending to ensure they're not unintentionally inflammatory
- Use tone indicators when your intent might be unclear
- Ask for clarification before assuming negative intent
- Be willing to apologize and correct mistakes
### 8.8 Learning from Conflicts
After a conflict is resolved:
- Reflect on what led to the disagreement
- Consider how it could have been prevented or handled better
- Apply these lessons in future interactions

28
src/content/docs/dev.mdx Normal file
View File

@ -0,0 +1,28 @@
---
title: Developer Documentation
template: splash
hero:
tagline:
Various guides for contributing to our projects.
actions:
- text: Contributing Guide
link: /dev/contributing
icon: right-arrow
variant: primary
- text: Contributor Covenant
link: /dev/covenant
icon: right-arrow
variant: primary
- text: Issue/PR Labels
link: /dev/labels
icon: right-arrow
variant: secondary
- text: Development Environment
link: /dev/environment
icon: right-arrow
variant: secondary
- text: Server Setup
link: /dev/servers
icon: right-arrow
variant: secondary
---

View File

@ -0,0 +1,600 @@
---
title: Contributing Documentation
---
**Effective 7 July 2024**
## 1. Scope and General Contribution Guidelines
### 1.1 Overview
This document outlines the general guidelines for contributing to our projects. It serves as a high-level framework for all contributors, whether you're submitting code, documentation, or other forms of contribution.
### 1.2 Project-Specific Instructions
While these guidelines apply broadly, individual projects may have unique requirements or processes. Always refer to the specific project's documentation for:
- Supplemental instructions
- Project-specific workflows
- Coding standards
- Testing requirements
- Other relevant information
In case of any discrepancy between this document and project-specific guidelines, the project-specific instructions take precedence.
### 1.3 Commit Signing Requirements
All commits must be cryptographically signed using either GPG or SSH. This requirement serves to verify the authenticity and integrity of your contributions.
- For GPG signing, ensure your GPG key is associated with your GitHub or Codeberg account.
- For SSH signing, use a key linked to your GitHub or Codeberg account.
By signing your commit, you are certifying that:
- The commit adheres to our [Contributor Covenant](/covenant.md)
- You have the right to submit the contribution under our project license.
- You understand and agree to our contribution terms.
### 1.4 Contributor Covenant
All contributors are expected to adhere to our Contributor Covenant. The full text of the Contributor Covenant can be found in [its own document](/covenant.md).
### 1.5 Licensing of Contributions
All contributions to our projects, including but not limited to code, documentation, artwork, and other materials, will be licensed under our global software license. By submitting a contribution, you are agreeing to license your work under the terms of this license.
- Our global software license: Naomi's Public License
- Full text of the license: https://docs.nhcarrigan.com/#/license
### 1.6 Intellectual Property
By contributing to our projects, you affirm that:
- You own the copyright to your contribution or have authorization from the copyright owner to submit it under our license.
- Your contribution does not infringe on any third-party intellectual property rights.
- You grant us a perpetual, worldwide, non-exclusive, royalty-free license to use, modify, and distribute your contribution.
### 1.7 Legal Compliance
Ensure all contributions comply with relevant laws and regulations, including export controls and data protection laws.
### 1.8 Acceptance of Contributions
While we appreciate all contributions, we reserve the right to reject any contribution that doesn't meet our standards or align with our project goals. The project maintainers have final say on the inclusion of any contribution.
## 2. Secrets Management
### 2.1 Overview
Proper management of secrets is crucial for maintaining the security and integrity of our projects. We use 1Password as our centralized secrets management solution. This section outlines our policies and procedures for handling secrets.
### 2.2 General Policy
- Plain-text secrets should never be stored on personal machines, development environments, or our servers.
- All secrets should be stored and managed through 1Password.
### 2.3 1Password Setup and Usage
To work with secrets locally, you must set up the 1Password CLI (Command Line Interface) and integrate it with your 1Password desktop application.
#### 2.3.1 Setup Instructions
- Install the 1Password desktop application if you haven't already.
- Install the 1Password CLI. Instructions can be found at: https://developer.1password.com/docs/cli/get-started/
- Authenticate the CLI with your 1Password account.
- Configure your development environment to use the 1Password CLI for secret retrieval. https://developer.1password.com/docs/cli/secrets-environment-variables/
#### 2.3.2 Best Practices
- Use environment variables to store secrets retrieved from 1Password during runtime.
- Never log or display secrets in any form.
- Rotate secrets regularly.
### 2.4 Handling Secrets in Code
- Development environment variables should be set in `dev.env` - changes to this file should generally be excluded from your contributions.
- Use 1Password references instead of actual secret values in configuration files.
## 3. Setting Up Your Development Environment
### 3.1 Forking the Repository
1. Navigate to the original repository on Codeberg.
2. Click the "Fork" button in the upper right corner of the page.
3. Select your account as the destination for the fork.
4. Wait for Codeberg to create a copy of the repository in your account.
### 3.2 Cloning Your Fork
1. Go to your forked repository on Codeberg.
2. Click the "Code" button and copy the URL (HTTPS or SSH, depending on your setup).
3. Open your terminal or command prompt.
4. Navigate to the directory where you want to store the project.
5. Run the following command, replacing `<url>` with the URL you copied:
```
git clone <url>
```
6. Enter your GitHub credentials if prompted.
### 3.3 Setting Up the Upstream Remote
Adding the original repository as an upstream remote allows you to easily keep your fork up-to-date.
1. Change into the project directory:
```
cd <project-name>
```
2. Add the upstream remote:
```
git remote add upstream <original-repository-url>
```
Replace `<original-repository-url>` with the **git** URL of the original repository.
3. Verify the new remote:
```
git remote -v
```
You should see entries for both `origin` (your fork) and `upstream`.
### 3.4 Keeping Your Fork Up-to-Date
Regularly update your fork to incorporate changes from the upstream repository:
1. Fetch the branches and commits from the upstream repository:
```
git fetch upstream
```
2. Check out your fork's local main branch:
```
git checkout main
```
3. Merge changes from upstream/main into your local main branch:
```
git merge upstream/main
```
### 3.5 Troubleshooting
If you encounter any issues during setup:
1. Check the project's FAQ or troubleshooting guide (if available).
2. Search for similar issues in the project's issue tracker.
3. If the problem persists, open a new issue with detailed information about the problem and steps to reproduce it.
You can also reach out to us in our Discord server: https://chat.nhcarrigan.com
## 4. Claiming an Issue
### 4.1 Finding an Issue
1. Navigate to the project's issue tracker.
2. Browse open issues or use filters to find tasks that interest you.
3. Read the issue description thoroughly to understand the requirements and context.
### 4.2 Expressing Interest
1. If you find an issue you'd like to work on, comment on the issue expressing your interest.
2. Example comment: "I'm interested in working on this issue. May I be assigned to it?"
3. Wait for a project maintainer to respond and potentially assign the issue to you.
### 4.3 Issue Assignment
- Project maintainers will assign issues based on the order of interest and the contributor's experience level.
- Once assigned, you'll see your username in the "Assignees" section of the issue.
### 4.4 Already Assigned Issues
If an issue is already assigned:
1. Check the assignee and the last activity date.
2. If you're still interested in contributing, you can:
a. Comment on the issue expressing your interest to collaborate.
b. Reach out to the assigned person to offer assistance or discuss collaboration.
We encourage collaboration and pair programming on complex issues!
### 4.5 Working on the Issue
1. Once assigned, create a new branch in your fork for this specific issue.
2. Use a descriptive branch name, e.g., `fix/issue-123-button-alignment`.
3. Make your changes, committing regularly with clear, concise commit messages.
4. Push your changes to your fork.
5. Open a pull request when ready for review (see Pull Request Guidelines in section [X]).
### 4.6 Keeping the Community Updated
1. Provide regular updates on your progress in the issue comments.
2. If you encounter obstacles, don't hesitate to ask for help in the issue thread.
3. If you need to step away from an issue, please let us know so it can be reassigned if necessary.
### 4.7 Time Management
- Try to start working on the issue within a few days of assignment.
- If you haven't made progress within a week, the issue may be unassigned to keep the project moving forward.
- If you need more time, communicate this in the issue comments.
### 4.8 Multiple Issues
- We encourage focusing on one issue at a time to ensure quality and timely completion.
- If you want to work on multiple issues, please complete one before requesting assignment to another.
### 4.9 Issue Labels
Pay attention to issue labels for additional context:
- `good first issue`: Suitable for newcomers to the project or open source.
- `help wanted`: Issues where we're actively seeking community help.
- `staff only`: Issue that will require staff attention.
### 4.10 Respectful Communication
- Always be courteous and professional in issue discussions.
- Respect the decisions of project maintainers regarding issue assignments and priorities.
- If you disagree with something, express your thoughts constructively and be open to feedback.
## 5. Working on Your Issue
### 5.1 Updating Your Fork
Before starting work, ensure your forked version is up to date with the original repository. If you've set up the `upstream` remote as mentioned in Section 3, follow these steps:
1. Open your terminal and navigate to your project's root directory.
2. Run the following commands:
```bash
git fetch upstream
git merge upstream/main
```
### 5.2 Creating a New Branch
Always create a new branch for your work:
1. Create and switch to a new branch:
```bash
git checkout -b <branchname>
```
2. Follow the branch naming convention: `type/description`
- `type`: Indicates the nature of the changes (e.g., `feat`, `fix`, `docs`, `refactor`)
- `description`: A brief, hyphenated description of the changes
Examples:
- `feat/add-login-page`
- `fix/resolve-memory-leak`
- `docs/update-api-endpoints`
### 5.3 Making Changes
1. Make your code changes, following the project's coding standards and guidelines.
2. Regularly commit your changes with clear, concise messages.
3. Push your changes to your fork periodically:
```bash
git push origin <branchname>
```
### 5.4 Committing Changes
When you're ready to commit your changes:
1. Stage your changes:
```bash
git add .
```
Or stage specific files:
```bash
git add <file1> <file2>
```
2. Commit:
```bash
git commit
```
### 5.5 Commit Message Guidelines
- Follow Conventional Commit standards: `type(scope): description` such as `docs: update contributing guidelines`.
- Use the present tense ("Add feature" not "Added feature")
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
- Limit the first line to 50 characters or less
- Additonal information can be included in the body
- Do NOT reference issues/PRs in your commit
Example:
```
feat: add user authentication system
Implement JWT-based authentication for API endpoints.
```
### 5.7 Testing Your Changes
- Run any existing tests to ensure your changes haven't broken anything:
```bash
pnpm test # or the appropriate test command for your project
```
- Add new tests for your changes if applicable.
### 5.8 Documentation
- Update relevant documentation to reflect your changes.
- If you've added new features, include appropriate documentation.
### 5.9 Preparing for Pull Request
Before submitting a pull request:
1. Check that your code adheres to the project's style guidelines - the linters should pass.
1. Ensure the build succeeds.
1. Ensure all tests pass.
1. Review your changes and commit history.
If you're unsure about any part of the process or need help, don't hesitate to ask in our [chat server](https://chat.nhcarrigan.com). Our community is here to support you!
## 6. Submitting a Pull Request
### 6.1 Pushing Your Changes
1. Push your changes to your forked repository:
```bash
git push -u origin <branchname>
```
- `-u` sets the upstream, linking your local branch to the remote branch
- `origin` specifies your forked repository as the destination
- `<branchname>` is the name of your local branch
2. Ensure the push is successful and your changes appear in your forked repository on Codeberg.
### 6.2 Creating the Pull Request
1. Navigate to your forked repository on Codeberg.
2. You should see a prompt to create a pull request for your recently pushed branch. If not, click on the "Pull requests" tab and then the "New pull request" button.
3. Ensure the base repository is the original project repository and the base branch is `main`.
4. Select your fork as the head repository and your recently pushed branch as the compare branch.
### 6.3 Filling Out the Pull Request
1. Change the title of your pull request to be a conventional commit message summarising all changes in that PR
2. Fill out the pull request description with as much information as possible. This typically includes:
- A clear description of the changes
- The issue number(s) your pull request addresses
- Any additional context or explanations
3. If your changes include visual elements, consider adding screenshots or GIFs to illustrate the modifications.
### 6.4 Pull Request Best Practices
- Ensure your PR addresses only one issue or adds one feature. If you have made multiple unrelated changes, consider breaking them into separate pull requests.
- Double-check that all tests pass and there are no conflicts with the base branch.
- If your PR is a work in progress, mark it as a draft pull request.
### 6.5 After Submitting
- Keep an eye on your pull request for any comments, requests for changes, or approval.
- Be prepared to make additional commits to your branch if changes are requested.
### 6.6 Updating Your Pull Request
If you need to make changes to your pull request:
1. Make the required changes in your local branch.
2. Commit the changes.
3. Push the new commits to your fork:
```bash
git push origin <branchname>
```
4. The pull request will automatically update with your new commits.
### 6.7 Pull Request Etiquette
- Be patient. Maintainers are often managing multiple priorities.
- Be open to feedback and willing to make changes.
- Respond promptly to any questions or requests from reviewers.
- If there's a delay in your ability to respond or make requested changes, leave a comment explaining the situation.
### 6.8 Merging and Closing
- Once your pull request is approved, a maintainer will merge it into the main project.
- After merging, you can delete your branch from your fork if you won't be using it anymore.
- Celebrate your contribution to the project!
## 7. Pull Request Reviews
### 7.1 Review Process Overview
- All pull requests require at least one approved review before merging.
- Reviews are primarily conducted by Naomi, but some projects may have additional reviewers.
- The review process helps maintain code quality, consistency, and project standards.
### 7.2 What Reviewers Look For
Reviewers typically assess the following aspects:
1. Code quality and style adherence
2. Functionality and correctness of the implementation
3. Test coverage and passing status
4. Documentation updates (if applicable)
5. Adherence to project-specific guidelines
6. Potential impact on existing features or performance
### 7.3 Types of Review Outcomes
1. **Approved**: Your pull request is ready to be merged.
2. **Changes Requested**: Modifications or additional information is needed before approval.
3. **Commented**: The reviewer has provided feedback but hasn't explicitly approved or requested changes.
### 7.4 Responding to Review Feedback
If changes are requested:
1. Read all comments carefully to understand the requested modifications.
2. Ask for clarification if any feedback is unclear.
3. Make the necessary changes in your local branch.
4. Commit and push the changes to update your pull request.
5. Respond to each comment, explaining how you addressed the feedback or why you chose a different approach.
### 7.5 Best Practices for Handling Reviews
- Respond promptly to review comments (ideally within a few days).
- Be open to constructive criticism and willing to make changes.
- If you disagree with a suggestion, explain your reasoning politely and be open to discussion.
- Use the review process as a learning opportunity to improve your coding skills.
### 7.6 Timelines and Expectations
- We strive to review pull requests as quickly as possible, typically within a week.
- If your pull request requires changes, please address them promptly.
- Pull requests with outstanding change requests and no activity for a week may be closed as stale.
- If you need more time to address changes, communicate this in the pull request comments to prevent your contribution from being closed.
### 7.7 Multiple Iterations
- Complex changes may require multiple rounds of reviews and revisions.
- Stay engaged throughout the process and be patient if additional iterations are needed.
### 7.8 Learning from the Review Process
- Take note of common feedback to improve future contributions.
- Consider reviewing other pull requests to gain insights into the project's standards and practices.
### 7.9 After Approval
Once your pull request is approved:
1. It will be merged into the main branch by a project maintainer.
2. Depending on the project's deployment pipeline, your changes may be deployed immediately or as part of the next release cycle.
Thank you for providing that section. I'll expand and improve it to make it more comprehensive and encourage a wider range of contributions. Here's an enhanced version:
## 8. Other Contributions
We value all types of contributions, not just code. There are many ways to contribute to our project, regardless of your technical experience or comfort level with the codebase. Here are several ways you can make a meaningful impact:
### 8.1 Documentation Updates
Clear and accurate documentation is crucial for any project. You can help by:
- Fixing typos, grammatical errors, or unclear phrasing
- Adding examples or clarifying existing explanations
- Creating new documentation for undocumented features
- Improving README files, API documentation, or user guides
### 8.2 Feature Requests
Your ideas can help shape the future of the project. To suggest a new feature:
1. Check existing issues to ensure your idea hasn't been proposed
1. Clearly describe the feature and its potential benefits
1. If possible, outline how the feature might be implemented
> [!TIP]
> Consider discussing your idea in our community chat before creating an issue to gather initial feedback.
### 8.3 Bug Reports
Identifying and reporting bugs is a valuable contribution. When reporting a bug:
1. Search existing issues to avoid duplicates
1. Provide a clear, concise description of the problem
1. Include steps to reproduce the bug
1. Describe the expected behavior and what actually happened
1. If possible, include screenshots, error messages, or code samples
### 8.4 User Support
Helping other users is a great way to contribute to the community:
- Answer questions in our Discord server or other community platforms
- Share your knowledge and experiences with the project
- Guide new users through common issues or setup processes
- Create tutorials or blog posts about using the project
### 8.5 Design Contributions
If you have design skills, you can contribute by:
- Creating or improving project logos or icons
- Designing user interface mockups for new features
- Improving the overall user experience and accessibility
- Creating infographics or visual aids for documentation
### 8.6 Testing and Quality Assurance
Help improve the project's stability by:
- Testing new features or bug fixes
- Performing usability testing and providing feedback
- Writing or improving automated tests
- Identifying edge cases or potential security issues
### 8.7 Community Building
Foster a welcoming and inclusive community by:
- Welcoming new contributors and helping them get started
- Organizing or participating in community events or meetups
- Promoting the project on social media or relevant forums
- Helping to moderate community discussions
### 8.8 Internationalization and Localization
Make the project accessible to a global audience:
- Translate user interfaces
- Provide localized documentation
- Ensure the project supports multiple languages and cultures
### 8.9 Code Reviews
Even if you're not comfortable making code changes, you can:
- Review pull requests for documentation or small changes
- Provide feedback on proposed features or bug fixes
- Help ensure code style and convention consistency
### 8.10 Fundraising and Sponsorship
If you have connections or experience in this area:
- Help identify potential sponsors or grants
- Assist with writing grant applications
- Organize fundraising events or campaigns
Or even make a donation yourself!
### 8.11 Mentoring
Share your knowledge and experience:
- Mentor new contributors
- Create learning resources for the project
- Participate in or organize coding workshops related to the project
Remember, all contributions, big or small, are valuable to the project. Don't hesitate to get involved in any way you feel comfortable. If you have any questions about how to contribute or need help getting started, please reach out to us in our Discord server or through the project's communication channels.

View File

@ -0,0 +1,44 @@
---
title: nhcarrigan Contributor Covenant
---
**Effective 7 July 2024**
Copyright (C) 2024 nhcarrigan and its contributors.
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.
## nhcarrigan Contributor Covenant 1.0
By making a contribution to this project I certify that:
<ol type="a">
<li>
I have read, understood, and agree to abide by the project's Code of Conduct in its entirety.
</li>
<li>
My contribution and participation align with the principles outlined in the Code of Conduct, including respect for all community members regardless of their identity or background.
</li>
<li>
I have the right to submit any code, documentation, or other content under the project's designated license.
</li>
<li>
If my contribution is based on previous work covered under an open source license, I have the right to submit that work with modifications under the project's license.
</li>
<li>
Any contribution provided to me by another person for submission to this project has been done so with certification of points <code>a</code> through <code>d</code>, and I have not modified it.
</li>
<li>
I understand that my contributions may be logged publicly, and that moderation actions taken in response to Code of Conduct violations may be recorded in the community's public moderation log.
</li>
<li>
I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.
</li>
<li>
I acknowledge that community leaders have the right and responsibility to remove, edit, or reject my contributions if they do not align with this certificate or the project's Code of Conduct.
</li>
<li>
I agree to release my contribution to nhcarrigan pursuant to the Terms of Service.
</li>
</ol>

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,12 @@
---
title: Security Hall of Fame
---
**Effective 7 July 2024**
## 1. Purpose
This document recognises the folks who have reported security vulnerabilities in our Applications pursuant to our [security policy](/security).
## 2. Recognitions
We extend our thanks to the following people for their efforts in keeping our users secure:

View File

@ -0,0 +1,450 @@
---
title: Labels
---
**Effective 14 July 2024**
We use very specific labels to help categorise our issues. This page explains what each label means.
## 1. Contribution Labels
These are the most important. These labels indicate who is encouraged to make a pull request to resolve the issue.
### 1.1. `good first issue`
#### 1.1.1. Purpose
Identifies issues suitable for contributors who are new to the project.
#### 1.1.2. Characteristics
Does not require prior knowledge of the codebase. Issues with this label should include a detailed description of the implementation process.
#### 1.1.3. Expectations
Contributors are responsible for ensuring their work complies with the project's licensing terms and contribution guidelines.
### 1.2. `help wanted`
#### 1.2.1. Purpose
Indicates issues open for contribution from any interested party.
#### 1.2.2. Characteristics
Typically assumes prior experience with the codebase. As such, issues may not include a detailed implementation description.
#### 1.2.3. Expectations
Contributors should review and adhere to the project's contribution guidelines and code of conduct before submitting work on these issues.
### 1.3. `🔒 staff only`
#### 1.3.1. Purpose
Designates issues restricted to project maintainers or staff due to specific access requirements.
#### 1.3.2. Characteristics
Requires access to production infrastructure for proper testing and implementation. As such, limited to authorised project maintainers and staff.
#### 1.3.3. Expectations
Staff members working on these issues must adhere to all relevant confidentiality agreements, data protection policies, and internal security protocols.
### 1.4 Disclaimer
Labels are assigned based on the project maintainers' best judgment but may not guarantee the exact level of difficulty or access requirements for every contributor. Contributors should use their discretion and communicate with project maintainers if they have any doubts about their ability to address an issue or comply with any associated legal requirements.
## 2. Aspect Labels
These labels indicate the scope of the work required to resolve the issue.
### 2.1. `💻 aspect: code`
#### 2.1.1. Purpose
Identifies issues requiring changes to the project's codebase.
#### 2.1.2. Characteristics
Involves direct modification to the project's source code. Familiarity with the languages and libraries used is expected.
#### 2.1.3. Expectations
Contributors must ensure their code changes comply with the project's coding standards, license terms, and any applicable software patents or copyrights.
### 2.2. `🤖 aspect: dx`
#### 2.2.1. Purpose
Indicates issues related to improving the project's tooling and development workflow.
#### 2.2.2. Characteristics
May include changes to automated tests, development dependencies, build processes, etc. Understanding of the development workflows is expected.
#### 2.2.3. Expectations
Changes to tooling or dependencies must be compatible with the project's overall licensing strategy and not introduce conflicts with existing terms.
### 2.3. `🕹 aspect: interface`
#### 2.3.1. Purpose
Designates issues that affect the end-user's experience with the project.
#### 2.3.2. Characteristics
May require changes in the code, particularly in front-end components. Can include visual modifications like CSS changes or image updates. Understanding of the end-user experience expected.
#### 2.3.3. Expectations
Contributors must ensure they have the necessary rights to any visual assets introduced or modified. Changes should comply with accessibility standards and regulations where applicable.
### 2.4. `📄 aspect: text`
#### 2.4.1. Purpose
Identifies issues related to the project's documentation.
#### 2.4.2. Characteristics
Typically does not require code changes. Proficiency in technical writing is a must.
#### 2.4.3. Expectations
Contributors must ensure the accuracy of the information provided in documentation updates. Documentation changes should adhere to any applicable style guides and licensing terms.
### 2.5 Disclaimer
Aspect labels are assigned based on the primary focus of the issue but may not encompass all potential areas of impact. Contributors are encouraged to consider potential cross-aspect effects of their work and discuss these with project maintainers when in doubt. The project maintainers reserve the right to reassign aspect labels or request additional changes if the submitted work does not align with the intended scope of the issue.
## 3. Goal Labels
These labels indicate the primary objective of the issue, reflecting our project's modular approach. They help contributors understand the nature and scope of the changes they'll be making.
### 3.1. `⭐ goal: addition`
#### 3.1.1. Purpose
Identifies issues that involve adding a new feature to the project.
#### 3.1.2. Characteristics
Typically involves creating new code files. Understanding of how different modules in the project integrate with each other is expected.
#### 3.1.3. Expectations
Contributors must ensure that new features do not infringe on existing patents or copyrights. New code should be compatible with the project's existing license. If introducing third-party libraries or dependencies, their licenses must be compatible with the project's license.
### 3.2. `🛠 goal: fix`
#### 3.2.1. Purpose
Designates issues aimed at fixing bugs in the project.
#### 3.2.2. Characteristics
Typically involves editing code within existing files. Scope should be kept to the specific bug - separate contributions should be made for unrelated bugs.
#### 3.2.3. Expectations
Bug fixes should not introduce new legal issues or licensing conflicts. Contributors should document the nature of the bug and the fix for future reference and potential legal compliance (e.g., security vulnerabilities).
### 3.3. `✨ goal: improvement`
#### 3.3.1. Purpose
Indicates issues that expand upon or enhance existing features.
#### 3.3.2. Characteristics
Usually involves adding code to existing files. Scope should be kept to the existing feature.
#### 3.3.3. Expectations
Improvements should maintain compatibility with existing licenses and legal obligations. If the improvement significantly changes the functionality, consider if additional legal reviews or updates to user agreements are necessary.
### 3.4. Disclaimer
While goal labels provide guidance on the nature of the task, the actual work required may vary or expand beyond the initial scope. Contributors are encouraged to communicate with project maintainers if they believe a different approach or additional changes are necessary to achieve the goal. The project maintainers reserve the right to request modifications or additional work to ensure that contributions align with the project's goals, standards, and legal requirements.
## 4. Priority Labels
Priority labels indicate the importance assigned to specific issues by the project maintainers. These labels help guide resource allocation and set expectations for resolution timeframes.
### 4.1. `🟥 priority: critical`
#### 4.1.1. Purpose
Identifies issues requiring immediate attention due to their severe impact on project usability.
#### 4.1.2. Characteristics
Require urgent resolution to restore project functionality. Experience with the project is a must, to avoid delays from long review processes.
#### 4.1.3. Expectations
May involve security vulnerabilities or critical bugs that could lead to legal liabilities if not addressed promptly. Resolution of these issues may need to be reported to relevant stakeholders or authorities in certain cases (e.g., data protection regulators for security breaches).
### 4.2. `🟧 priority: high`
#### 4.2.1. Purpose
Designates important issues that, while not preventing basic functionality, are impeding further development.
#### 4.2.2. Characteristics
Not critical for current project operation but blocking future progress. Require prompt attention to unblock development efforts.
#### 4.2.3. Expectations
May involve compliance deadlines or contractual obligations that need to be met. Could impact project timelines, potentially affecting agreements with stakeholders or clients.
### 4.3. `🟨 priority: medium`
#### 4.3.1. Purpose
Indicates issues that need resolution as soon as possible but are not blocking other development.
#### 4.3.2. Characteristics
Important for project improvement but not critical for current functionality. Should be addressed in a timely manner but with less urgency than high-priority issues.
#### 4.3.3. Expectations
May involve improvements to user experience or accessibility, which could have legal implications if neglected long-term. Could relate to optimizations that affect performance guarantees or service level agreements.
### 4.4. `🟩 priority: low`
#### 4.4.1. Purpose
Represents issues that should be resolved but are not considered urgent.
#### 4.4.2. Characteristics
Desirable improvements or minor issues that don't significantly impact project functionality.
#### 4.4.3. Expectations
While not urgent, neglecting these issues over time could lead to technical debt or gradual degradation of project quality, potentially affecting long-term compliance or user satisfaction.
### 4.5. `🟪 priority: none`
#### 4.5.1. Purpose
Identifies "nice-to-have" issues that are not essential for project functionality or immediate development goals.
#### 4.5.2. Characteristics
Not critical enough to dedicate maintainer time for resolution. Often left for community contributors or future consideration.
#### 4.5.3. Expectations
While not prioritized, maintainers should periodically review these issues to ensure they haven't become more significant over time, potentially accruing legal or compliance risks.
### 4.6 Disclaimer
Priority labels reflect the project maintainers' current assessment and may be subject to change. The presence of a lower-priority label does not diminish the importance of the issue or the value of contributions addressing it. Contributors should communicate with maintainers if they believe an issue's priority should be reassessed due to new information or changing circumstances.
## 5. Status Labels
Status labels indicate the current stage of an issue in the project lifecycle. These labels help manage workflow and set expectations for contributors and users.
### 5.1. `🚦 status: awaiting triage`
#### 5.1.1. Purpose
Identifies newly created issues that have not yet been reviewed by the maintainer team.
#### 5.1.2. Characteristics
Should be applied to issues when they are opened.
#### 5.1.3. Expectations
Contributors should be aware that engaging with these issues is at their own discretion, as the project team has not yet evaluated them. Maintainers should establish a reasonable timeframe for initial triage to manage expectations and potential liability.
### 5.2. `🚧 status: blocked`
#### 5.2.1. Purpose
Indicates issues with a planned resolution that depend on the completion of another issue.
#### 5.2.2. Characteristics
Not yet ready for work but expected to be addressed in the future.
#### 5.2.3. Expectations
Maintainers should clearly document dependencies to avoid potential conflicts or misunderstandings. Regular review of blocked issues is advisable to prevent indefinite delays that could impact project timelines or contractual obligations.
### 5.3. `⛔️ status: discarded`
#### 5.3.1. Purpose
Designates issues that the project team does not intend to resolve.
#### 5.3.2. Characteristics
Typically applied to feature requests that don't align with project goals.
#### 5.3.3. Expectations
Clearly communicate the rationale for discarding issues to manage user expectations and maintain transparency. Ensure that discarded issues don't conflict with any promised features or contractual obligations.
### 5.4. `🙅 status: discontinued`
#### 5.4.1. Purpose
Applies to feature requests for projects in maintenance mode.
#### 5.4.2. Characteristics
Indicates no new features will be added, but bug fixes and support continue.
#### 5.4.3. Expectations
Clearly communicate the project's maintenance status to manage user expectations and potential liability. Ensure that discontinuation doesn't breach any ongoing support agreements or licenses.
### 5.5. `🏷 status: label work required`
#### 5.5.1. Purpose
Indicates issues that need proper labeling and categorization.
#### 5.5.2. Characteristics
May have ongoing discussions but lack appropriate classification.
#### 5.5.3. Expectations
Proper labeling is crucial for efficient project management and may have implications for compliance tracking and reporting. Establish clear guidelines for labeling to ensure consistency and avoid potential misunderstandings.
### 5.6. `🏁 status: ready for dev`
#### 5.6.1. Purpose
Signifies issues that are ready for contribution.
#### 5.6.2. Characteristics
May have an assigned contributor who has expressed interest.
#### 5.6.3. Expectations
Clearly communicate contribution guidelines and any legal requirements (e.g., Contributor Covenant) to potential contributors. Ensure that collaborative efforts are managed in compliance with project licenses and contributor agreements.
### 5.7. `🧹 status: ticket work required`
#### 5.7.1. Purpose
Indicates issues lacking sufficient information for proper triage.
#### 5.7.2. Characteristics
Often paired with Conversation Labels for further clarification.
#### 5.7.3. Expectations
Establish clear guidelines for required information to avoid potential misunderstandings or misdirected efforts. Be mindful of data privacy when requesting additional information from issue reporters.
### 5.8. Disclaimer
Status labels reflect the current assessment of the project team and may change as circumstances evolve. While the project team strives to maintain accurate status labels, contributors and users should communicate with maintainers if they notice any discrepancies or have questions about an issue's status.
## 6. Conversation Labels
Conversation labels indicate that an issue has received initial maintainer attention but requires further discussion or information before proceeding. These labels help manage communication and ensure all necessary information is gathered before taking action.
### 6.1. `💬 talk: discussion`
#### 6.1.1. Purpose
Identifies issues that are under active discussion but have not yet been accepted for resolution.
#### 6.1.2. Characteristics
Ongoing dialogue between maintainers, contributors, and/or users. May involve debates about feature requests, implementation strategies, or project direction.
#### 6.1.3. Expectations
Ensure discussions remain constructive and adhere to the project's code of conduct. Be cautious about making commitments or promises during discussions that could create legal obligations. Document key decisions and rationales to maintain transparency and provide a record for future reference.
### 6.2. `❓ talk: question`
#### 6.2.1. Purpose
Indicates issues waiting on additional information from the author for proper triage.
#### 6.2.2. Characteristics
Requires clarification or more details from the issue creator. Cannot proceed with triage or resolution until the requested information is provided.
#### 6.2.3. Expectations
Clearly communicate what information is needed and why it's necessary. Be mindful of data privacy when requesting additional information. Establish and communicate timeframes for expected responses to manage the issue lifecycle efficiently.
### 6.3. Disclaimer
Conversation labels indicate ongoing dialogue and do not guarantee that an issue will be implemented or resolved in a specific manner. Participants should understand that project priorities and decisions may change based on new information or project direction.
## 7. Pull Request Labels
Pull Request (PR) labels are used to indicate the current status of pull requests and guide contributors through the review and merge process.
### 7.1. `⚠️ pull: merge conflict`
#### 7.1.1. Purpose
Indicates that the pull request has conflicts with the target branch.
#### 7.1.2. Characteristics
Conflicts need to be resolved before the PR can be reviewed or merged. May require action from the original contributor or project maintainers.
#### 7.1.3. Expectations
Clearly communicate the responsibility for resolving conflicts (e.g., whether it's the contributor's or maintainer's role). Ensure that conflict resolution doesn't introduce unintended changes or legal issues (e.g., license conflicts).
### 7.2. `🔍 pull: ready for review`
#### 7.2.1. Purpose
Signifies that the pull request is not in draft mode and is awaiting maintainer review.
#### 7.2.2. Characteristics
PR has been submitted as complete and ready for evaluation. Maintainers should prioritize reviewing these PRs.
#### 7.2.3. Expectations
Ensure contributors understand that "ready for review" doesn't guarantee acceptance or merging. Maintain clear review criteria and communicate them to contributors.
### 7.3. `⏫ pull: requires update`
#### 7.3.1. Purpose
Indicates that the maintainer team has requested changes to the pull request.
#### 7.3.2. Characteristics
Feedback has been provided, and updates are needed before further review or merging. Requires action from the contributor to address the requested changes.
#### 7.3.3. Expectations
Clearly document requested changes to maintain transparency and avoid misunderstandings. Consider setting timeframes for updates to manage the PR lifecycle effectively.
### 7.4. Disclaimer
The presence of these labels does not guarantee that a pull request will be merged. All contributions must still meet the project's quality standards, guidelines, and legal requirements.
## 8. Continuous Improvement
We encourage all project participants to provide feedback on our labeling system. If you have suggestions for improvements or notice any inconsistencies, please reach out to us in our [chat server](https://chat.nhcarrigan.com).
## 9. Legal Notice
This labels documentation is provided for informational purposes and to facilitate project management. It does not constitute a legal agreement. All contributions to the project must comply with the project's license, contributor agreement (if applicable), and relevant laws and regulations.
By using these labels and participating in the project, you agree to abide by the project's code of conduct and contribution guidelines.

View File

@ -0,0 +1,341 @@
---
title: Server Setup
---
**Effective 14 July 2024**
This document outlines how we set up our remote servers for running projects.
## 1. Provision a Server
We use DigitalOcean as our provider. Regardless of your choice, provision a new VPS using the **latest Ubunutu LTS version**. Add your `ssh` key AND Naomi's `ssh` key in the setup process.
## 2. Set Up User
You should never run applications on root. SSH into the new VPS to prepare your user.
### 2.1. Creating the User
You'll need to set a password for the `root` account first.
```bash
passwd
```
Once you have set a password, ensure that you have provided it to Naomi to store in the vault.
Create an `nhcarrigan` user for our organisation.
```bash
adduser nhcarrigan
```
Set a **different** password, and provide that to Naomi as well. For all of the user information, use the default blank values.
Add the new user to the sudoers file.
```bash
usermod -aG sudo nhcarrigan
```
Then sync the SSH keys so we can authenticate as that user.
```bash
rsync --archive --chown=nhcarrigan:nhcarrigan ~/.ssh /home/nhcarrigan
```
While you are there, set the timezone for the server to our business' local timezone.
```bash
sudo timedatectl set-timezone America/Los_Angeles
```
## 3. Preparing For Web Requests
To prepare the server to receive web requests, you'll need to follow a few steps.
### 3.1. SSL Certificate
> [!NOTE]
> If the Firewall has been set up, you'll need to temporarily allow port 80 for the certificate to generate.
We use LetsEncrypt to provision our SSL certificates. If it is not installed, install it with:
```bash
sudo snap install --classic certbot
```
Then link the snap to our `usr` directory.
```bash
sudo ln -s /snap/bin/certbot /usr/bin/certbot
```
Generate a certificate with:
```bash
sudo certbot certonly --standalone
```
And allow applications to read it:
```bash
sudo chmod -R a+rwx /etc/letsencrypt
```
When you need to renew the certificate:
```bash
sudo certbot renew
```
### 3.2. NGINX
All requests should be routed through NGINX. At no point should an application run directly on ports 80 or 443.
Install NGINX:
```bash
sudo apt-get install nginx
```
Edit the configuration file:
```bash
sudo emacs /etc/nginx/conf.d/server.conf
```
Use this template to set up a reverse proxy on the standard HTTPS port 443:
```nginx
server {
listen 443 ssl;
server_name subdomain.domain.tld;
ssl_certificate /etc/letsencrypt/live/subdomain.domain.tld/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/subdomain.domain.tld/privkey.pem;
location / {
proxy_set_header Host $host;
proxy_pass https://127.0.0.1:port;
proxy_redirect off;
}
}
```
Validate that the config is correct with:
```bash
sudo nginx -t
```
If so, restart NGINX to apply the changes:
```bash
sudo systemctl restart nginx
```
## 4. Securing the Server
We have a minimum level of security that is required on ALL of our servers. This section should not be treated as the best effort, but as the minimal requirements to comply with our policies.
### 4.1. Firewall
We use `ufw` as our firewall. First, enable the SSH port.
```bash
sudo ufw allow "OpenSSH"
```
Then, allow the standard HTTPS port and **deny** the standard HTTP port.
```bash
sudo ufw deny http
sudo ufw allow https
```
Enable the firewall. You may get dropped from the SSH connection.
```bash
sudo ufw enable
```
### 4.2. Fail2Ban
We also use Fail2Ban to block IP addresses which fail to make requests too often.
Install the tool:
```bash
sudo apt-get install fail2ban
```
Configure the NGINX jail in `/etc/fail2ban/jail.d/nginx-auth.conf`:
```ini
[nginx-auth]
enabled = true
filter = nginx-auth
logpath = /var/log/nginx/access.log
maxretry = 3
findtime = 86400
bantime = 86400
```
Configure the NGINX filter in `/etc/fail2ban/filter.d/nginx-auth.conf`:
```ini
[Definition]
failregex = ^<HOST> - .* \[.*\] ".*" (4\d{2}) .*$
```
Because we use Cloudflare, you'll need to grab the original IP for all requests. Start by creating a file to store Cloudflare's IPs.
```bash
sudo touch /etc/nginx/cloudflare_ips.conf
```
Then create your script:
```bash
nano ~/update_cf_ips.sh
```
```bash
#!/bin/bash
# Create a temporary file
temp_file=$(mktemp)
# Download IPv4 ranges and format each line
curl -s https://www.cloudflare.com/ips-v4 | while read ip; do
echo "set_real_ip_from $ip;" >> "$temp_file"
done
# Download IPv6 ranges and format each line
curl -s https://www.cloudflare.com/ips-v6 | while read ip; do
echo "set_real_ip_from $ip;" >> "$temp_file"
done
# Add the real_ip_header directive
echo "real_ip_header CF-Connecting-IP;" >> "$temp_file"
# Replace the old file with the new one
sudo mv "$temp_file" /etc/nginx/cloudflare_ips.conf
# Test Nginx configuration
sudo nginx -t
# If the test is successful, reload Nginx
if [ $? -eq 0 ]; then
sudo systemctl reload nginx
echo "Nginx configuration updated and reloaded successfully."
else
echo "Nginx configuration test failed. Please check your configuration."
fi
```
Make it executable and run it:
```bash
sudo chmod +x update_cf_ips.sh
sudo ./update_cf_ips.sh
```
If it runs as expected, set it up to run on a CRON.
```bash
sudo crontab -e
```
```bash
0 3 * * 1 ~/update_cf_ips.sh
```
Then, update the `/etc/nginx/nginx.conf` to use all of this new logic. This goes at the end of your `http` directive block.
```conf
# Look at the real IP, not the cloudflare IP.
include /etc/nginx/cloudflare_ips.conf;
log_format custom_format '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" '
'"$http_x_forwarded_for"';
access_log /var/log/nginx/access.log custom_format;
```
Confirm the NGINX configuration is correct:
```bash
sudo nginx -t
```
Then restart everything.
```bash
sudo systemctl restart nginx
sudo systemctl restart fail2ban
```
To view banned IPs:
```bash
sudo fail2ban-client status nginx-auth
```
And to unban them:
```bash
sudo fail2ban-client set nginx-auth unbanip <ip>
```
## 5. Running a Project
Now you are ready to start running the project.
### 5.1. Node.js
Most of our projects will run on Node. For a new machine, you'll need to set that up.
We use `nvm` to manage Node versions. Fetch and run the install script:
```bash
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash
```
The script will automatically update the `.bashrc` file to load `nvm` into the PATH. Reload that:
```bash
source ~/.bashrc
```
Install the long-term support Node version.
```bash
nvm install --lts
```
This should automatically set it as the default. When updating, be sure to remove any older versions!
Finally, install `pnpm` as the package manager.
```bash
npm i -g pnpm
```
### 5.2. PM2
All of our processes run with PM2 to allow for monitoring and auto-restarts. You'll need to install it.
```bash
pnpm i -g pm2
```
To start a project, use this template:
```bash
pm2 start '<script>' --name '<name>'
```
Then run `pm2 save` to save the application list.

View File

@ -0,0 +1,21 @@
---
title: Naomi's Documentation
description: This site contains various information that Naomi felt would be helpful to share.
template: splash
hero:
tagline:
This site contains various information that Naomi felt would be helpful to share.
actions:
- text: ❓ About Us
link: /about
variant: secondary
- text: ⚖️ Legal Information
link: /legal
variant: secondary
- text: 📜 Community Guide
link: /community
variant: secondary
- text: 🛠️ Staff Guide
link: /staff
variant: secondary
---

View File

@ -0,0 +1,23 @@
---
title: Legal Information
template: splash
hero:
tagline:
These are the legal policies you agree to when you engage with our community or consume our products.
actions:
- text: Terms of Service
link: /legal/terms
variant: primary
- text: Privacy Policy
link: /legal/privacy
variant: primary
- text: Software License
link: /legal/license
variant: secondary
- text: Security Policy
link: /legal/security
variant: secondary
- text: DMCA and Copyright
link: /legal/dmca
variant: secondary
---

View File

@ -0,0 +1,123 @@
---
title: DMCA and Intellectual Property Compliance Policy
---
**Effective 7 July 2024**
## 1. General Principles
- Respect for intellectual property rights is fundamental to our community's ethos and operations.
- All community members, including users, contributors, and administrators, are expected to comply with applicable copyright laws, trademark regulations, and licensing terms.
- This policy aims to protect the rights of content creators while fostering an environment of innovation and knowledge sharing.
- Ignorance of the law or this policy is not considered a valid excuse for non-compliance.
## 2. Sharing Copyrighted Material
- Do not share copyrighted material without explicit permission from the copyright holder or a valid license.
- When sharing is permitted, always include proper attribution and adhere to any specified terms of use.
- Linking to legitimately published content is generally acceptable, but copying and pasting substantial portions is discouraged unless explicitly allowed by the copyright holder.
- Be aware that even user-generated content on social media platforms may be copyrighted.
- When in doubt about the copyright status of material, err on the side of caution and seek permission or clarification.
## 3. Fair Use and Educational Purposes
- Limited use of copyrighted material for commentary, criticism, news reporting, teaching, scholarship, or research may be permissible under fair use doctrines.
- When relying on fair use, clearly indicate the source and purpose of the use.
- Fair use is determined on a case-by-case basis, considering factors such as:
- The purpose and character of the use (commercial vs. non-profit educational)
- The nature of the copyrighted work
- The amount and substantiality of the portion used
- The effect of the use upon the potential market for the copyrighted work
- Educational use does not automatically qualify as fair use; consider all factors carefully.
## 4. Proper Attribution
- When using or referencing others' work, always provide clear and comprehensive attribution.
- Attribution should include:
- The name of the creator or author
- The title of the work
- The source (e.g., website URL, book title, journal name)
- The date of publication or creation (if available)
- Any applicable license terms
- For digital content, consider using hyperlinks to the original source when possible.
- Follow citation guidelines appropriate to your field or the context of use (e.g., APA, MLA, Chicago).
## 5. Original Content Creation and Sharing
- Community members are encouraged to create and share original content.
- By sharing original content in our community spaces, you grant the community a non-exclusive, worldwide, royalty-free right to use, reproduce, modify, adapt, publish, translate, distribute, and display the content within the community.
- You retain copyright of your original work unless explicitly stated otherwise.
- Consider adding a clear copyright notice to your original works.
- Be mindful of using third-party content (e.g., images, music) in your original creations, ensuring you have the right to incorporate such elements.
## 6. Open Source and Creative Commons
- We encourage the use of open source licenses and Creative Commons for shared content where appropriate.
- When using open source or Creative Commons licensed material, adhere strictly to the terms of the license.
- Familiarize yourself with different types of open source and Creative Commons licenses and their requirements (e.g., attribution, share-alike, non-commercial use).
- Provide clear license information when sharing your own content under open source or Creative Commons terms.
## 7. Code Snippets and Examples
- Short code snippets shared for educational or troubleshooting purposes are generally acceptable under fair use.
- For larger code samples, include license information and attribution if taken from other sources.
- When sharing your own code, consider using an appropriate open source license.
- Be aware that copying entire programs or substantial portions of code may infringe copyright, even if source attribution is provided.
## 8. Plagiarism
- Presenting others' work as your own is strictly prohibited and considered a serious offense.
- This includes code, text, images, ideas, and any other form of content.
- Plagiarism can have serious consequences, including loss of community privileges, academic penalties, or legal action.
- Always cite your sources and use quotation marks for direct quotes.
## 9. Trademark Usage
- Respect trademark rights when referencing products, services, or organizations.
- Use trademark symbols (™, ®) appropriately when referring to trademarked names.
- Avoid using trademarks in a way that suggests endorsement or affiliation without permission.
## 10. Digital Millennium Copyright Act (DMCA) Compliance
- We comply with the DMCA and maintain a policy for addressing claims of copyright infringement.
- If you believe your copyrighted work has been improperly used within our community, submit a DMCA takedown notice to DMCA@nhcarrigan.com.
- DMCA takedown notices must include:
- Identification of the copyrighted work claimed to have been infringed
- Identification of the allegedly infringing material
- Contact information for the complainant
- A statement of good faith belief that the use is not authorized
- A statement, under penalty of perjury, that the information in the notice is accurate and that the complainant is authorized to act on behalf of the copyright owner
- We will promptly investigate all legitimate DMCA takedown notices and take appropriate action, which may include content removal or account suspension.
## 11. Counter-Notifications
- If you believe your content was wrongly removed due to a DMCA takedown notice, you may submit a counter-notification.
- Counter-notifications must include:
- Identification of the removed material and its location before removal
- A statement under penalty of perjury that you have a good faith belief the material was removed by mistake or misidentification
- Your name, address, and telephone number
- A statement that you consent to the jurisdiction of the federal district court for the judicial district in which you reside
## 12. Repeat Infringer Policy
- We maintain a repeat infringer policy to ensure ongoing DMCA compliance.
- Users who repeatedly infringe copyrights may have their accounts terminated.
- We keep records of DMCA notices and counter-notifications to identify repeat infringers.
## 13. Education and Awareness
- We are committed to educating our community about intellectual property rights and responsibilities.
- Regular updates and resources on copyright law and best practices will be provided.
- Members are encouraged to seek clarification on any aspect of this policy they find unclear.
## 14. Policy Updates
- This policy may be updated periodically to reflect changes in law, technology, or community needs.
- Continued use of our community platforms constitutes acceptance of the current policy.
## 15. Disclaimer
- This policy is not exhaustive and does not constitute legal advice.
- Users are encouraged to seek independent legal counsel for specific intellectual property matters.
By participating in our community, you agree to abide by this DMCA and Intellectual Property Compliance Policy. Failure to comply may result in content removal, account suspension, or other appropriate actions as determined by community administrators.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,292 @@
---
title: Privacy Policy
---
**Effective 7 July 2024**
## 1. Overview and Scope
### 1.1. General Applicability
This privacy policy ("General Policy") governs the collection, use, storage, and protection of data across all our services, platforms, and applications (collectively referred to as "Services").
### 1.2. Project-Specific Policies
Individual projects or Services may be subject to additional, project-specific privacy policies ("Project Policies"). These Project Policies apply concurrently with the General Policy. In the event of any conflict between the General Policy and a Project Policy, the stricter privacy protections shall prevail.
### 1.3. Policy Updates and Retroactivity
We reserve the right to modify, amend, or update this General Policy and any Project Policies at any time. All changes to these policies, including the General Policy and any Project Policies, are retroactive and apply to previously collected data as well as data collected after the changes take effect.
### 1.4. Notification of Changes
We will make reasonable efforts to notify users of significant changes to our privacy policies. However, it is the user's responsibility to regularly review the applicable privacy policies for any updates.
### 1.5. Acceptance of Terms
By accessing, using, or continuing to use our Services, you explicitly acknowledge and agree to be bound by the most current version of the General Policy and any applicable Project Policies. If you do not agree with the terms of these policies, you must immediately cease using our Services.
### 1.6. Effective Date
The effective date of the current version of this policy will be clearly stated at the beginning of the document. Each revision will be numbered or dated for easy reference.
## 2. Error Logging and Transparency
### 2.1. Public Error Logging
In alignment with our commitment to open source principles, we maintain a policy of transparency regarding application errors and issues. All errors encountered in our Services are logged publicly in our Discord community.
### 2.2. Content of Error Logs
Error logs may include, but are not limited to:
- Timestamp of the error
- Error type and description
- Relevant application or service name
- Non-personally identifiable technical details necessary for troubleshooting
- General user actions that led to the error (without specific user identification)
### 2.3. Potentially Included Information
While we strive to minimize inclusion of personal or sensitive information, error logs may sometimes contain:
- User IDs or usernames (in hashed or partially redacted form)
- IP addresses (in hashed or partially redacted form)
- Device information
- Other technical data relevant to the error
### 2.4. Access to Error Logs
We strongly recommend that all users join our Discord community prior to using our applications. This allows you to:
- Review the types of information being logged
- Understand the frequency and nature of errors
- Participate in discussions about bugs and improvements
### 2.5. Discord Community Access
To join our Discord community and access the error logs, please use the following link: https://chat.nhcarrigan.com
### 2.6. Opt-Out and Data Removal
If you have concerns about information appearing in error logs:
- You may opt-out of using our Services
- You can contact us to request removal of specific log entries, subject to our data retention policies
### 2.7. Continuous Improvement
Public error logging helps us maintain transparency, quickly identify and resolve issues, and continually improve our Services. We appreciate our users' understanding and participation in this process.
## 3. Data Collection, Documentation, and User Rights
### 3.1. Data Collection Practices
We strive to collect only the data necessary for the proper functioning and improvement of our Services. However, the scope of data collection may change as our Services evolve.
### 3.2. Documentation Efforts
We make every effort to maintain accurate and up-to-date documentation regarding our data collection practices. This includes:
- Regular reviews of our data collection processes
- Timely updates to our privacy policy and related documentation
- Clear communication about significant changes in data collection
### 3.3. Potential Undocumented Data Collection
Despite our best efforts, it is possible that at any given time, an application or Service may collect data that is not explicitly documented. This may occur due to:
- Recent updates or changes to our Services
- Technical issues or bugs
- Third-party integrations or dependencies
### 3.4. General Data Rights
Regardless of whether specific data collection is documented, users have the following rights:
#### 3.4.1. Right to Access:
At any time, you may request a complete copy of your data stored by one of our applications. Requests must be done via our [support server](https://chat.nhcarrigan.com) from the Discord account the data belongs to. This ensures that a user cannot impersonate you and request your data. We may request additional identifying information, depending on the structure of the data collected by the application.
#### 3.4.2. Right to Rectification:
You may request corrections to any inaccurate data we hold about you.
#### 3.4.3. Right to Erasure:
At any time, you may request complete removal of your stored data. Requests must be done via our [support server](https://chat.nhcarrigan.com) from the Discord account the data belongs to. This ensures that a user cannot impersonate you and request your data. We may request additional identifying information, depending on the structure of the data collected by the application.
This will **not** opt you out of future data collection unless specifically requested. We reserve the right to refuse removal requests when the data are necessary for specific functionality of the app, in circumstances where removing your data would compromise the functionality for all users.
#### 3.4.4. Right to Restrict Processing:
At any time, you may request to opt out of data collection for an application by requesting removal of your data and discontinuing interaction with the application. We may request additional identifying information, depending on the structure of the data collected by the application.
We reserve the right to refuse opt-out requests when the data are necessary for specific functionality of the app, in circumstances where opting-out would compromise the functionality for all users.
#### 3.4.5. Right to Data Portability:
You may request a copy of your data in a structured, commonly used, and machine-readable format.
### 3.5. Exercising Your Rights
To exercise any of these rights or to inquire about data we may hold:
- Contact us through our discord server: https://chat.nhcarrigan.com
- Be prepared to verify your identity to protect the security of your information
### 3.6. Opting Out of Data Collection
- You may cease using our Services
- For specific types of data collection, we may offer granular opt-out options
- Note that opting out of essential data collection may limit or prevent your use of certain Services
### 3.7. Response Time and Process
We will make reasonable efforts to respond to all data-related requests within 30 days. Complex requests may require additional time, in which case we will notify you.
### 3.8. Limitations
While we strive to honor all legitimate requests, be aware that legal requirements may sometimes prevent us from fully complying with certain requests.
### 3.9. Ongoing Commitment
We are committed to transparency and user privacy. We continuously work to improve our data practices and documentation to ensure the highest standards of data protection and user trust.
## 4. Data Retention
### 4.1. Retention Principle
We adhere to the principle of data minimization, storing personal data for the shortest time necessary to fulfill the purposes for which it was collected and to ensure the proper functioning of our applications.
### 4.2. Retention Periods
Specific retention periods may vary depending on the type of data and the purpose for which it is processed. Generally:
- Active user data is retained for the duration of the user's account activity
- Inactive user data may be retained for a period after the last user interaction, typically not exceeding 12 months
- Aggregated and anonymized data may be retained indefinitely for analytical purposes
### 4.3. Automatic Deletion
Where technically feasible, we implement automated processes to delete or anonymize personal data that has exceeded its retention period.
### 4.4. Legal and Regulatory Compliance
Certain data may be retained for longer periods if required by applicable laws, regulations, or to comply with legal obligations.
### 4.5. Backup Retention
For data recovery purposes, backups may contain personal data for a period beyond the active retention period. These backups are secured and accessed only when necessary for system restoration.
### 4.6. User-Initiated Deletion
Users may request the deletion of their data at any time, subject to our legitimate business needs and legal obligations.
## 5. Availability of Data
### 5.1. Access Control
Access to user data is strictly controlled and limited to authorized members of the nhcarrigan team on a need-to-know basis.
### 5.2. Purpose Limitation
Data access by the nhcarrigan team is permitted only for the following purposes:
- Debugging application issues
- Improving application functionality and user experience
- Contributing to the development and maintenance of the application
- Responding to user support requests
- Ensuring compliance with legal and regulatory requirements
### 5.3. Data Security Measures
We implement robust security measures to protect data from unauthorized access, including but not limited to:
- Encryption of data in transit and at rest
- Multi-factor authentication for developer accounts
- Regular security audits and vulnerability assessments
- Logging of data access and modifications
### 5.4. Developer Training and Accountability
All team members with data access are:
- Required to undergo privacy and security training
- Bound by confidentiality agreements
- Subject to disciplinary action for unauthorized data access or misuse
### 5.5. Third-Party Access
We do not sell user data. In cases where third-party service providers require access to perform specific functions:
- Access is limited to the minimum necessary data
- Providers are bound by strict contractual obligations to protect user data
- We regularly review and audit third-party practices
### 5.6. Transparency
We maintain logs of data access by our team and can provide this information upon justified request, subject to privacy and security considerations.
### 5.7. User Data Requests
Users may request information about how their data has been accessed or used by contacting our designated data protection contact.
### 5.8. Continuous Improvement
We regularly review and update our data handling practices to ensure the highest standards of data protection and to minimize unnecessary access to personal information.
## 6. Contact Information and Data Inquiries
We value transparency and are committed to addressing any questions or concerns you may have regarding our privacy practices. There are several ways to reach us:
### 6.1. Discord Support Server
For immediate assistance and community support, join our Discord server: https://chat.nhcarrigan.com
### 6.2. Email Contact
For privacy-specific inquiries or formal requests, please email: `privacy@nhcarrigan.com`
### 6.3. Response Time
We strive to respond to all inquiries within 5 business days. Complex issues may require additional time.
### 6.4. Types of Inquiries
We welcome contact regarding:
- Questions about this privacy policy
- Inquiries about our data collection and use practices
- Requests to exercise your data rights (access, rectification, erasure, etc.)
- Reporting of potential data breaches or security concerns
- Suggestions for improving our privacy practices
### 6.5. Information to Include
To help us address your inquiry efficiently, please include:
- Your full name
- The email address associated with your account (if applicable)
- A detailed description of your question or concern
- Any relevant dates, times, or specific instances related to your inquiry
### 6.6. Verification Process
For security reasons, we may need to verify your identity before processing certain requests, especially those related to personal data.
### 6.7. Alternative Contact Methods
If you are unable to use Discord or email, please visit our website for additional contact options: https://nhcarrigan.com
### 6.8. Updates and Notifications
If you wish to receive updates about changes to our privacy policy or data practices, please join our Discord server: https://chat.nhcarrigan.com
### 6.9. Legal Inquiries
For legal or formal inquiries, please use the email provided above and clearly mark your message as a legal inquiry.
### 6.10. Accessibility
If you require this information in an alternative format for accessibility reasons, please let us know, and we will do our best to accommodate your needs.

View File

@ -0,0 +1,119 @@
---
title: Security Policy
---
**Effective 7 July 2024**
## 1. Introduction
This Security Policy outlines the procedures for reporting security vulnerabilities in our applications and the terms under which we handle such reports. By participating in our security reporting process, you agree to comply with this policy.
## 2. Scope
This policy applies to all applications, services, and systems maintained by our organization, including but not limited to:
- Our main websites and applications
- All open-source projects hosted on our repositories
- Any associated APIs or backend services
## 3. Reporting a Vulnerability
### 3.1 Reporting Channels
If you discover a security vulnerability within any of our applications or systems, please report it through one of the following secure channels:
1. Create a private ticket on our [support server](https://chat.nhcarrigan.com)
2. Send an email to `security@nhcarrigan.com`
### 3.2 Public Disclosure Prohibition
Do NOT disclose the vulnerability publicly or through any public channels, including but not limited to:
- Public GitHub issues
- Social media platforms
- Public forums or chat rooms
- Blog posts or articles
### 3.3 Required Information
When reporting a vulnerability, please provide:
- A detailed description of the vulnerability
- Steps to reproduce the issue
- Potential impact of the vulnerability
- Any suggested mitigation or fix (if known)
## 4. Response Process
### 4.1 Acknowledgment
We will acknowledge receipt of your vulnerability report within 3 business days.
### 4.2 Assessment and Verification
Our security team will assess the reported vulnerability and may contact you for additional information if needed.
### 4.3 Resolution Timeline
We strive to resolve confirmed vulnerabilities within 90 days of the initial report, depending on the complexity and severity of the issue.
## 5. Disclosure Policy
### 5.1 Coordinated Disclosure
We practice coordinated disclosure. We will work with you to ensure that a fix is available before any public disclosure of the vulnerability.
### 5.2 Public Acknowledgment
With your permission, we may publicly acknowledge your contribution in discovering and reporting the vulnerability after it has been resolved.
## 6. Legal Safe Harbor
### 6.1 Authorization
We authorize security research and vulnerability disclosure activities, provided they are conducted in accordance with this policy and all applicable laws.
### 6.2 Scope of Protection
We will not initiate legal action for accidental, good faith violations of this policy. This safe harbor applies only to activities that:
- Comply with all aspects of this Security Policy
- Do not compromise or attempt to compromise the privacy or safety of our users, employees, or systems
- Do not violate any applicable laws
### 6.3 Limitations
This safe harbor does not apply to:
- Vulnerabilities or information obtained through means other than security research
- Research conducted on third-party applications or services that integrate with our systems
## 7. Bug Bounty Program
We do not currently offer monetary rewards or "bug bounties" for reporting security vulnerabilities. Your contributions to our security are greatly appreciated, but are on a voluntary basis.
We will gladly thank you in our [Hall of Fame](/community/hall-of-fame)
## 8. Data Protection and Privacy
### 8.1 Handling of Submitted Information
Any information you provide in your vulnerability report will be handled in accordance with our Privacy Policy and applicable data protection laws.
### 8.2 Confidentiality
We will treat all vulnerability reports as confidential and will not share the information beyond what is necessary to address the reported issue.
## 9. Compliance with Laws and Regulations
All security research and vulnerability disclosure activities must comply with all applicable local, state, and federal laws, as well as any relevant international laws.
## 10. Policy Updates
We reserve the right to update or modify this Security Policy at any time. Any changes will be effective immediately upon posting the updated policy on our website or repository.
## 11. Contact Information
For any questions regarding this Security Policy, please contact us at `security@nhcarrigan.com`.
By reporting a security vulnerability to us, you acknowledge that you have read, understood, and agree to this Security Policy.

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,16 @@
---
title: Staff Guides
template: splash
hero:
tagline:
These documents are primarily intended for our staff members.
actions:
- text: Staff Handbook
link: /staff/handbook
icon: right-arrow
variant: primary
- text: Join the Team
link: /staff/apply
icon: right-arrow
variant: secondary
---

View File

@ -0,0 +1,26 @@
---
title: Join Our Staff Team
---
**Effective 7 July 2024**
## 1. Volunteer Positions
Unless explicitly stated otherwise in a separate written agreement, all positions within our organization are on a voluntary basis. No compensation, monetary or otherwise, should be expected for these roles.
## 2. Selection Process
Our team member selection process is based on the following criteria:
1. Active participation in the community
2. Length of membership in the community
3. Quality and nature of interactions with other community members
If you are selected as a potential team member, our representative, Naomi, will contact you directly with further information and instructions.
## 3. Legal Disclaimer
This document does not constitute an offer of employment or a binding contract. Our organization reserves the right to modify, suspend, or terminate any volunteer position or the mentorship programme at any time, without prior notice.
By engaging in any volunteer activities you acknowledge that you have read, understood, and agree to these terms.
For any questions or clarifications regarding these policies, please contact us on Discord.

View File

@ -0,0 +1,941 @@
---
title: Staff Handbook
---
**Effective 7 July 2024**
Welcome to our organization. This Staff Handbook serves as a comprehensive guide to our policies, procedures, and expectations. It is designed to help you understand your role in our community and how you can contribute to our collective success.
We rely on every staff member, regardless of position, to help keep our community running smoothly and efficiently. Your dedication, skills, and adherence to our standards are crucial in achieving our organizational goals.
By familiarizing yourself with this handbook and adhering to its guidelines, you play a vital role in maintaining the integrity and effectiveness of our organization. Your commitment to these principles helps ensure a positive, productive, and harmonious work environment for all.
## 1. Activity Requirements
### 1.1 Flexible Engagement
We recognize and deeply appreciate that our staff members are volunteers dedicating their time and effort to support our community. As such, we do not impose rigid activity quotas or specific engagement levels.
### 1.2 Communication of Extended Absences
While we maintain a flexible approach to activity, we kindly request that you inform us of any anticipated absences:
- For absences exceeding one week, please notify the team via the `#staff-chat` channel on Discord.
- This communication helps us manage workload distribution and ensures continued smooth operation of our community.
### 1.3 Extended Inactivity
In cases of prolonged inactivity:
- If you are inactive for more than one month without prior communication, we may remove you from the active staff team.
- This policy helps maintain an engaged and responsive staff roster.
- Please note that removal due to inactivity is not punitive and does not reflect negatively on your contributions.
### 1.4 Returning to the Team
We value your contributions and understand that life circumstances can change:
- If you've been removed due to inactivity, you are always welcome to rejoin the staff team when your schedule permits.
- To rejoin, please contact an admin.
### 1.5 Balancing Commitments
We encourage you to balance your volunteer work with your personal life and other commitments:
- Your well-being is important to us. Never feel pressured to overextend yourself.
- If you find your role becoming stressful or overly time-consuming, please discuss this with an admin.
### 1.6 Recognition of Contributions
While we don't set specific activity requirements, we do recognize and appreciate consistent engagement and contributions:
- Regular participation helps build a strong, cohesive community.
- Outstanding contributions may be acknowledged through our staff recognition program.
## 2. Moderator Guidelines
### 2.1 Role Definition
As a moderator, you occupy a position of trust within our community. This role comes with additional responsibilities and tools to ensure the safety and well-being of our community members. However, it's crucial to understand that:
- Being a moderator does not elevate you above other community members.
- Your role is one of service and support, not authority or superiority.
### 2.2 General Expectations
#### 2.2.1 Leading by Example
As moderators, you are expected to exemplify the ideal community member:
- Be active and engaged within the community.
- Strictly adhere to all community rules and guidelines.
- Demonstrate a welcoming and inclusive attitude towards all members, especially newcomers.
#### 2.2.2 Balancing Roles
Remember that you are both a moderator and a community member:
- Not every interaction requires a moderation action.
- Engage in regular social interactions with fellow community members.
- Maintain a balance between your moderator duties and personal enjoyment within the community.
#### 2.2.3 Platform Familiarity
Our community spans multiple platforms:
- You are entrusted with maintaining all our platforms, but you're not expected to be an expert on all of them.
- Focus on moderating platforms you're comfortable with.
- Seek assistance or guidance from fellow moderators when dealing with unfamiliar platforms.
### 2.3 Conduct Guidelines
#### 2.3.1 Professionalism
Maintain a professional demeanor in all interactions:
- Remain calm and objective, especially in challenging situations.
- Avoid engaging in or escalating conflicts.
- Use appropriate language and tone at all times.
#### 2.3.2 Fairness and Consistency
Apply rules and take actions consistently:
- Treat all community members equally, regardless of their status or your personal feelings.
- Make decisions based on community guidelines, not personal preferences.
#### 2.3.3 Transparency
Be open about your actions as a moderator:
- Clearly explain the reasons for any moderation decisions when appropriate.
- Be willing to discuss your actions with other moderators or admins if questions arise.
### 2.4 Collaboration and Support
#### 2.4.1 Team Communication
Maintain open lines of communication with your fellow moderators:
- Use designated channels (e.g., `#staff-chat`) to discuss moderation issues.
- Share experiences and seek advice when facing challenging situations.
#### 2.4.2 Continuous Learning
Stay informed and improve your moderation skills:
- Keep up-to-date with any changes to community guidelines or moderation policies.
- Participate in any provided training or skill-sharing sessions.
#### 2.4.3 Escalation Protocol
Know when and how to escalate issues:
- Identify situations that require input from administrators.
- Follow established procedures for escalating complex or sensitive matters.
### 2.2 Discord Moderation Guidelines
#### 2.2.1 General Principles
- Always approach situations calmly and objectively.
- Escalate gradually: Start with the least severe action necessary and progress as needed.
- Document all moderation actions using the mod bot for consistency and future reference.
#### 2.2.2 Warning a Member
Use warnings for minor infractions or first-time offenses.
**When to Warn:**
- Mild spam (e.g., posting the same message a few times)
- Non-discriminatory insults (e.g., "You're a jerk")
- Minor rule violations
**How to Warn:**
Use the mod bot command:
```txt
/warn @user [reason for warning]
```
**Follow-up:**
- Monitor the member's behavior after the warning.
- If behavior improves, no further action is needed.
- If issues persist, consider stronger measures.
#### 2.2.3 Kicking a Member
Kicking is a temporary removal that allows the member to rejoin.
**When to Kick:**
- Repeated minor infractions after warnings
- Arguing with moderators
- Moderate spam
- Non-severe rule violations
**How to Kick:**
Use the mod bot command:
```txt
/kick @user [reason for kick]
```
**Follow-up:**
- Monitor if the user returns and their subsequent behavior.
- Be prepared to take stronger action if issues continue upon their return.
#### 2.2.4 Banning a Member
Banning is the most severe action and should be used judiciously.
**When to Ban:**
- Severe rule violations
- Repeated offenses after warnings and kicks
- Malicious actions (e.g., raiding, doxxing, severe harassment)
**How to Ban:**
Use the mod bot command:
```txt
/ban @user [reason for ban]
```
**Important Considerations:**
- Discord bans are IP-specific.
- The member cannot rejoin until the ban is lifted.
- Always double-check the user and reason before banning.
- For permanent bans, consult with administrators.
#### 2.2.5 Moderation Best Practices
1. **Communication:** Clearly explain the reason for moderation actions to the affected member when possible.
2. **Consistency:** Apply rules uniformly to all members.
3. **Documentation:** Always use the mod bot for actions to ensure proper logging.
4. **Discretion:** Use your judgment. Context matters in deciding appropriate actions.
5. **Team Coordination:** Discuss unclear situations with fellow moderators.
6. **Appeals Process:** Be aware of the process for members to appeal moderation decisions.
7. **Continuous Learning:** Stay updated on any changes to community guidelines or moderation policies.
### 2.3 Twitch Moderation
#### 2.3.1 General Responsibilities
- Monitor chat actively during live streams.
- Enforce our community rules and Twitch's Terms of Service.
- Assist viewers with questions and foster a welcoming atmosphere.
- Support the streamer by managing chat flow and addressing issues promptly.
#### 2.3.2 Chat Moderation Tools
Familiarize yourself with Twitch's built-in moderation tools:
1. **Timeout:** Temporarily prevents a user from chatting.
2. **Ban:** Permanently removes a user from the channel.
3. **Delete Message:** Removes a single message from chat.
4. **Slow Mode:** Limits how often users can send messages.
5. **Followers-Only Mode:** Restricts chat to followers.
6. **Subscribers-Only Mode:** Limits chat to subscribers.
7. **Unique-Chat Mode:** Prevents users from posting duplicate messages.
#### 2.3.3 Moderation Actions
##### 2.3.3.1 Warnings
- For minor infractions, start with a verbal warning in chat.
- Use clear, concise language to explain the issue.
Example: "@User, please avoid spamming emotes. Next time may result in a timeout."
##### 2.3.3.2 Timeouts
Use timeouts for more serious or repeated minor offenses.
- First offense: 5-minute timeout
- Second offense: 10-minute timeout
- Third offense: 30-minute timeout
To timeout: `/timeout @username [duration]`
##### 2.3.3.3 Bans
Reserve bans for severe violations or persistent problematic behavior.
To ban: `/ban @username`
Always document the reason for bans in your moderator notes or designated channel.
#### 2.3.4 Specific Situations
1. **Spam:** Use timeouts, increasing duration for repeat offenses.
2. **Hate Speech/Discrimination:** Immediate ban and report to Twitch.
3. **Excessive Backseat Gaming:** Start with a warning, then short timeout if it continues.
4. **Spoilers:** Delete message and issue a warning.
5. **Self-Promotion:** Remove message and warn. Timeout for repeated offenses.
6. **Bot Attacks:** Enable followers-only or subscribers-only mode temporarily.
#### 2.3.5 Communication
- Coordinate with other moderators via a separate chat or Discord channel.
- Inform the streamer of any significant issues or decisions made during the stream.
- Be prepared to explain moderation actions if questioned by viewers.
#### 2.3.6 Raids and Hosting
- Welcome incoming raids positively.
- Be extra vigilant during raids to catch any potential influx of rule-breaking behavior.
- Assist in shouting out and thanking raiders/hosts as appropriate.
#### 2.3.7 Clips and Highlights
- Monitor clips created during streams for any inappropriate content.
- Report or delete any clips that violate our guidelines or Twitch ToS.
#### 2.3.8 Post-Stream Duties
- Review any user reports or issues that occurred during the stream.
- Discuss any notable incidents or concerns with the moderation team.
- Provide feedback or suggestions for improving stream moderation.
### 2.4 Reddit Moderation
#### 2.4.1 General Responsibilities
- Regularly check the moderation queue for reported posts and comments.
- Enforce subreddit rules and Reddit's content policy.
- Engage with the community to encourage positive interactions.
- Collaborate with other moderators to maintain consistency.
#### 2.4.2 Moderation Tools
Familiarize yourself with Reddit's moderation tools:
1. **Remove:** Takes down a post or comment from public view.
2. **Spam:** Removes content and marks it as spam.
3. **Approve:** Manually approves content, overriding auto-mod actions.
4. **Lock:** Prevents further comments on a post.
5. **Sticky:** Pins important posts to the top of the subreddit.
6. **Distinguish:** Marks your comment as coming from a moderator.
7. **Ban:** Prevents a user from posting or commenting in the subreddit.
#### 2.4.3 Moderation Actions
##### 2.4.3.1 Content Removal
- Remove posts and comments that violate subreddit rules or Reddit's content policy.
- Always provide a reason for removal, using removal reasons or commenting.
##### 2.4.3.2 User Warnings
- For minor infractions, issue a warning via modmail or comment.
- Document warnings in mod notes for future reference.
##### 2.4.3.3 Temporary Bans
- Use for repeated minor offenses or more serious rule violations.
- Typical durations: 3 days, 7 days, 14 days, 30 days.
- Always include the reason and duration in the ban message.
##### 2.4.3.4 Permanent Bans
- Reserve for severe violations or persistent problematic behavior.
- Always provide a clear reason in the ban message.
- Allow for appeal process through modmail.
#### 2.4.4 Specific Situations
1. **Spam:** Remove and mark as spam. Temp ban for repeated offenses.
2. **Harassment:** Remove, warn, and escalate to temp or permanent ban as needed.
3. **Off-topic Posts:** Remove and direct users to appropriate subreddits.
4. **Reposts:** Remove recent reposts, with a comment explaining the removal.
5. **Trolling:** Remove comments, warn, and ban for persistent behavior.
6. **Vote Manipulation:** Report to Reddit admins and remove content.
#### 2.4.5 AutoModerator
- Familiarize yourself with our AutoModerator configuration.
- Regularly review and update AutoMod rules as needed.
- Check the moderation log to ensure AutoMod is functioning correctly.
#### 2.4.6 Flair Management
- Ensure posts are properly flaired.
- Assist users with setting up user flairs if applicable.
#### 2.4.7 Modmail
- Respond to modmail inquiries promptly and professionally.
- Use templates for common responses to ensure consistency.
- Escalate complex issues to admins when necessary.
#### 2.4.8 Community Engagement
- Participate in discussions to set a positive example.
- Use distinguish feature judiciously when speaking officially as a moderator.
- Create and maintain community resources (FAQ, wiki, etc.).
#### 2.4.9 Coordinating with the Mod Team
- Use private moderator channels or subreddits for team discussions.
- Participate in periodic mod team meetings or discussions.
- Propose and discuss potential rule or policy changes.
#### 2.4.10 Handling Sensitive Content
- Remove NSFW content.
- For controversial topics, monitor discussions closely and lock if necessary.
- Report any illegal content to Reddit admins immediately.
### 2.5 Codeberg Moderation
#### 2.5.1 General Responsibilities
- Monitor repository activities, including issues, pull requests, and discussions.
- Enforce our organization's code of conduct and Codeberg's terms of service.
- Assist contributors with questions and foster a welcoming atmosphere for new participants.
- Manage repository settings and access controls.
#### 2.5.2 Moderation Tools
Familiarize yourself with Codeberg's moderation features:
1. **Issue Management:** Open, close, label, and moderate issues.
2. **Pull Request Review:** Review, comment on, and merge or reject pull requests.
3. **Commit Management:** Revert or cherry-pick commits if necessary.
4. **User Management:** Manage collaborator access and block problematic users.
5. **Repository Settings:** Adjust visibility, branch protection, and other settings.
#### 2.5.3 Moderation Actions
##### 2.5.3.1 Issue and Pull Request Moderation
- Review and triage new issues and pull requests promptly.
- Apply appropriate labels for categorization and priority.
- Close or merge after thorough review and discussion.
##### 2.5.3.2 Comment Moderation
- Remove inappropriate or off-topic comments.
- Provide warnings for minor infractions.
- Lock discussions that become unproductive or violate guidelines.
##### 2.5.3.3 User Management
- Grant appropriate access levels to contributors.
- Temporarily restrict access for users violating guidelines.
- Block persistent offenders after warnings and temporary restrictions.
#### 2.5.4 Specific Situations
1. **Spam:** Remove spam content and warn the user. Block for repeated offenses.
2. **Harassment:** Remove offending content, warn the user, and escalate to blocking if behavior persists.
3. **Off-topic Discussions:** Redirect to appropriate channels or close if irrelevant.
4. **Code of Conduct Violations:** Address promptly, following the enforcement guidelines in the CoC.
5. **Licensing Issues:** Ensure all contributions comply with the project's license. Remove any content that violates licensing terms.
#### 2.5.5 Repository Management
- Regularly review and update repository descriptions and README files.
- Manage branch protection rules to maintain code quality.
#### 2.5.6 Collaboration and Communication
- Use repository discussions or a designated communication channel for project-related conversations.
- Clearly communicate decisions and reasoning behind moderation actions.
- Encourage constructive feedback and open dialogue among contributors.
#### 2.5.7 Pull Request Review Process
- Establish and communicate clear guidelines for PR submissions.
- Conduct thorough code reviews, focusing on both functionality and style.
- Provide constructive feedback and guidance, especially for new contributors.
- Ensure all checks (e.g., tests, linting) pass before merging.
#### 2.5.8 Security Management
- Monitor and address security vulnerabilities promptly.
- Manage responsible disclosure of security issues.
- Regularly update dependencies to patch known vulnerabilities.
#### 2.5.9 Community Building
- Recognize and appreciate valuable contributions.
- Organize periodic community events or sprints to boost engagement.
- Maintain a welcoming atmosphere for contributors of all experience levels.
#### 2.5.10 Documentation
- Ensure project documentation is comprehensive and up-to-date.
- Encourage contributors to improve documentation alongside code changes.
- Maintain clear guidelines for project structure, coding standards, and contribution processes.
### 2.6 IRC Moderation
#### 2.6.1 General Responsibilities
- Monitor channel activities continuously while online.
- Enforce channel rules and network policies.
- Assist users with questions and foster a welcoming atmosphere.
- Manage channel modes and user privileges as needed.
#### 2.6.2 IRC-Specific Moderation Tools
Familiarize yourself with these essential IRC commands:
1. `/kick <nick> [reason]`: Remove a user from the channel temporarily.
2. `/ban <mask>`: Ban a user or hostmask from the channel.
3. `/mute <nick>`: Prevent a user from speaking in the channel.
4. `/topic`: Set or modify the channel topic.
5. `/mode`: Change channel modes (e.g., moderated, invite-only).
#### 2.6.3 Moderation Actions
##### 2.6.3.1 Warnings
For minor infractions, start with a verbal warning in the channel.
Example: "Username, please avoid using excessive caps. It's considered shouting."
##### 2.6.3.2 Kicks
Use kicks for more serious or repeated minor offenses.
To kick: `/kick username Reason for kick`
##### 2.6.3.3 Bans
Reserve bans for severe violations or persistent problematic behavior.
To ban: `/ban username*!*@*`
Always document the reason for bans in your moderation logs.
#### 2.6.4 Specific Situations
1. **Spam**: Use kicks, escalating to short-term bans for repeat offenses.
2. **Offensive Language**: Warn, then kick. Ban for repeated offenses.
3. **Flooding**: Mute temporarily, kick if behavior continues.
4. **Off-topic Discussions**: Gently redirect to appropriate channels.
5. **Bot Attacks**: Set channel to moderated mode (+m) temporarily.
#### 2.6.5 Channel Management
- Regularly update channel topics with important information or rules.
- Manage channel modes to maintain order (e.g., +m for moderated discussions).
- Coordinate with other ops to ensure consistent coverage and enforcement.
#### 2.6.6 User Support
- Be responsive to user queries about channel rules or IRC usage.
- Guide new users on proper IRC etiquette and our community standards.
#### 2.6.7 Logging and Reporting
- Maintain logs of significant moderation actions for team review.
- Report any serious incidents or patterns to admins.
### 2.7 Slack Moderation
#### 2.7.1 General Responsibilities
- Monitor channel activities across public channels.
- Enforce workspace rules and Slack's terms of service.
- Assist users with questions and foster a collaborative atmosphere.
- Manage channel settings and user permissions as needed.
#### 2.7.2 Slack-Specific Moderation Tools
Familiarize yourself with these essential Slack moderation features:
1. Message deletion: Remove inappropriate messages.
2. User management: Adjust user roles and permissions.
3. Channel management: Create, archive, or modify channel settings.
4. Workspace settings: Configure global settings for the workspace.
#### 2.7.3 Moderation Actions
##### 2.7.3.1 Warnings
For minor infractions, start with a private message to the user.
Example: "Hi [Username], please remember to use threads for extended discussions to keep the main channel clear. Thanks!"
##### 2.7.3.2 Message Removal
Use message deletion for content that violates workspace rules.
##### 2.7.3.3 Restricting Privileges
For repeated offenses, consider restricting user privileges temporarily.
##### 2.7.3.4 Removing Users
In severe cases, remove users from the workspace. This should be a last resort.
#### 2.7.4 Specific Situations
1. **Off-topic discussions**: Gently redirect to appropriate channels.
2. **Inappropriate content**: Remove the content and privately message the user.
3. **Spam**: Delete spam messages and restrict user privileges if persistent.
4. **Heated arguments**: Intervene privately to de-escalate and remind users of conduct guidelines.
5. **Sensitive information sharing**: Quickly remove any posts containing sensitive data and follow up with the user.
#### 2.7.5 Channel Management
- Regularly review and update channel purposes and topics.
- Archive inactive channels to keep the workspace organized.
- Ensure channels have appropriate permissions set.
#### 2.7.6 User Support
- Be responsive to user queries about workspace rules or Slack usage.
- Guide new users on Slack etiquette and our community standards.
- Assist with general troubleshooting of Slack features.
#### 2.7.7 Logging and Reporting
- Utilize Slack's built-in logs for auditing purposes.
- Report any serious incidents or patterns to admins.
#### 2.7.8 Integration Management
- Monitor and manage third-party app integrations to ensure they're used appropriately.
- Be prepared to troubleshoot or disable problematic integrations.
### 2.8 Matrix Moderation
#### 2.8.1 General Responsibilities
- Monitor room activities across our Matrix spaces.
- Enforce room rules and the Matrix.org Terms of Service.
- Assist users with questions and foster an inclusive atmosphere.
- Manage room settings and user power levels as needed.
#### 2.8.2 Matrix-Specific Moderation Tools
Familiarize yourself with these essential Matrix moderation features:
1. Redaction: Remove inappropriate messages.
1. Kick/Ban: Remove users temporarily or permanently from rooms.
1. Room settings: Modify room join rules, visibility, and other parameters.
#### 2.8.3 Moderation Actions
##### 2.8.3.1 Warnings
For minor infractions, start with a private message to the user.
Example: "Hi @username:domain.com, please remember to stay on-topic in #general. Thanks for your cooperation!"
##### 2.8.3.2 Message Redaction
Use redaction for content that violates room rules or Matrix ToS.
##### 2.8.3.3 Kicks and Bans
In severe cases, kick or ban users from the room. Use bans sparingly and for serious violations.
#### 2.8.4 Specific Situations
1. **Spam**: Redact spam messages and lower user power level if persistent.
2. **Offensive content**: Redact the content and privately message the user.
3. **Off-topic discussions**: Gently redirect to appropriate rooms or spaces.
4. **Bridged content issues**: Address issues specific to bridged networks (e.g., IRC, Discord) appropriately.
5. **End-to-end encrypted rooms**: Be aware of limitations in moderating e2ee rooms.
#### 2.8.5 Room Management
- Regularly review and update room topics and info.
- Manage room aliases and directory visibility.
- Ensure rooms have appropriate power level settings.
#### 2.8.6 User Support
- Be responsive to user queries about room rules or Matrix usage.
- Guide new users on Matrix etiquette and our community standards.
- Assist with general troubleshooting of Matrix clients and features.
#### 2.8.7 Logging and Reporting
- Utilize Matrix's event logs for auditing purposes where necessary.
- Report any serious incidents or patterns to admins.
#### 2.8.8 Federation Management
- Be aware of federation status with other homeservers.
- Know how to contact admins of other homeservers if inter-server issues arise.
## 3. Working With Fellow Moderators
### 3.1 Communication Channels
#### 3.1.1 Primary Communication Platform
- Discord serves as our primary communication hub for the moderation team.
- A private `#staff-chat` channel is available for internal discussions.
#### 3.1.2 Use of Staff Chat
- Utilize the `#staff-chat` channel for:
- Discussing concerns
- Seeking advice on handling situations
- Requesting assistance with ongoing issues
- Sharing relevant information with the team
### 3.2 Collaborative Problem-Solving
- Approach fellow moderators for help and insights when needed.
- Be open to offering assistance when others request it.
- Engage in constructive discussions to find optimal solutions.
### 3.3 Team Unity and Public Image
- Maintain a united front in public spaces.
- Avoid disagreeing with or criticizing fellow moderators in public forums.
- If you have concerns about a moderation action or a colleague's behavior:
- Address the issue privately in the staff chat or through direct messages.
- Seek resolution through open and respectful dialogue.
### 3.4 Conflict Resolution
- If unable to resolve disagreements among yourselves:
- Escalate the matter to Naomi for guidance.
- Present the situation objectively, providing necessary context.
### 3.5 Supporting Each Other
- Recognize that moderation can be challenging.
- Offer emotional support and encouragement to fellow moderators.
- Share experiences and coping strategies for dealing with difficult situations.
### 3.6 Knowledge Sharing
- Use the staff chat to share useful resources, tools, or techniques.
- Discuss emerging trends or patterns in user behavior that may require attention.
### 3.7 Consistency in Moderation
- Regularly discuss and align on interpretation and enforcement of community rules.
- Share examples of how you've handled specific situations to ensure consistency.
### 3.8 Respecting Privacy
- Keep all discussions in staff channels confidential.
- Do not share private moderator conversations with community members.
### 3.9 Active Participation
- Regularly check and engage in staff communications.
- Contribute to team discussions and decision-making processes.
### 3.10 Continuous Improvement
- Be open to feedback from fellow moderators.
- Suggest improvements to moderation processes or team communication.
- Participate in any team training or development activities.
## 4. Logging Sanctions
### 4.1 Discord Sanctions
- Moderation actions on Discord are automatically logged by our system.
- No additional manual logging is required for Discord-specific actions.
### 4.2 Sanctions on Other Platforms
For all platforms other than Discord, manual logging is necessary:
#### 4.2.1 Logging Channel
- Use the `#mod-logs` channel in our Discord community for logging all non-Discord sanctions.
#### 4.2.2 Required Information
When logging a sanction, include the following details:
1. Platform: Specify the platform where the action was taken (e.g., Twitch, Reddit, Codeberg).
2. Username: Provide the exact username or handle of the sanctioned member.
3. Reason: Clearly state the reason for the sanction, referencing specific rule violations if applicable.
4. Evidence: Include or describe any relevant evidence supporting the action taken.
5. Action Taken: Specify the type of sanction (e.g., warning, temporary ban, permanent ban).
6. Duration: For temporary sanctions, note the duration.
#### 4.2.3 Logging Format
Use the following format for consistency:
```
Platform: [Platform Name]
User: [Username]
Action: [Type of Sanction]
Duration: [If applicable]
Reason: [Detailed explanation]
Evidence: [Description or link to evidence]
```
### 4.3 Best Practices for Sanction Logging
1. **Timeliness**: Log the sanction as soon as possible after taking action.
2. **Objectivity**: Stick to facts and avoid personal opinions in the log.
3. **Clarity**: Ensure your log entry is clear and understandable to other moderators.
4. **Completeness**: Include all relevant information, even if it seems minor.
5. **Confidentiality**: Do not share logs outside of the moderation team.
### 4.4 Using Logged Information
- Regularly review logs to identify patterns or recurring issues.
- Use logged information to ensure consistent application of rules across platforms.
- Refer to logs when discussing moderation strategies or updating community guidelines.
### 4.5 Correcting or Updating Logs
- If you need to correct or update a logged sanction, do so in the same channel.
- Clearly mark your message as an update or correction to a previous log entry.
### 4.6 Reviewing Logs
- Administrators should periodically review sanction logs to ensure:
- Consistency in moderation across the team
- Proper documentation of all actions
- Identification of any trends or areas needing attention
## 5. User Support
### 3.1 Role in User Experience
As a member of our team, you play a crucial role in ensuring a positive and smooth user experience across all our platforms. Your ability to provide timely and accurate support is essential to our community's satisfaction and growth.
### 5.2 Knowledge Base
- Familiarize yourself with most of our projects to answer a wide range of questions.
- Stay updated on recent changes or updates to our projects.
- Utilize available resources (documentation, FAQs, wikis) to assist users effectively.
### 5.3 Handling User Inquiries
#### 5.3.1 Immediate Assistance
- Respond promptly to users seeking help on any of our platforms.
- Provide clear, concise answers to questions you're confident about.
#### 5.3.2 Complex Inquiries
- For questions you're unsure about, don't hesitate to seek help.
- Inform the user that you're looking into their issue to manage expectations.
### 5.4 Collaborative Problem-Solving
- Utilize the staff chat in Discord for discussing complex user questions.
- Engage with fellow staff members to collaboratively find solutions.
- Share knowledge and insights to improve the team's overall support capabilities.
### 5.5 Follow-up
- After providing a solution, check if the user's issue has been fully resolved.
- Encourage users to reach out again if they need further assistance.
### 5.6 Continuous Improvement
- Keep track of common user issues and suggest improvements to our documentation or user interfaces.
- Share insights gained from user interactions with the rest of the team to enhance our overall support quality.
## 6. Contributor Support
### 6.1 Welcoming New Contributors
- Greet new contributors warmly when they show interest in our projects.
- Provide guidance on where to find our contribution guidelines and code of conduct.
- Offer assistance in identifying suitable first issues or tasks for newcomers.
### 6.2 Technical Assistance
- Help contributors set up their development environments.
- Provide explanations or resources for understanding our project structure and coding standards.
- Assist with version control (e.g. git) usage if needed.
### 6.3 Code Review Support
- Offer constructive feedback on pull requests or proposed changes.
- Explain the reasoning behind any requested modifications.
- Guide contributors through the process of updating their submissions.
### 6.4 Documentation Support
- Assist contributors in locating or updating project documentation.
- Encourage and guide contributors who wish to improve our documentation.
- Provide feedback on proposed documentation changes.
### 6.5 Issue Clarification
- Help contributors understand the scope and requirements of open issues.
- Provide additional context or clarification on feature requests or bug reports.
### 6.6 Communication Channels
- Direct contributors to appropriate communication channels (e.g., mailing lists, chat rooms, forums) for project-specific discussions.
- Monitor these channels to provide timely responses to contributor queries.
### 6.7 Mentoring
- Offer mentorship to promising contributors who show consistent interest.
- Provide guidance on best practices, advanced topics, and project goals.
### 6.8 Recognition and Encouragement
- Acknowledge and thank contributors for their efforts, regardless of the outcome.
- Highlight significant contributions in project updates or community announcements.
### 6.9 Conflict Resolution
- Mediate any disagreements between contributors professionally and impartially.
- Ensure discussions remain constructive and aligned with our code of conduct.
### 6.10 Continuous Improvement
- Regularly review and update our contribution processes based on feedback.
- Seek input from contributors on how to improve their experience.
## 7. Cross-Platform Access
### 7.1 Eligibility for Cross-Platform Roles
- Once you have been selected for a staff position on any of our platforms, you become eligible to request staff access on additional platforms.
- This opportunity is open to all current staff members in good standing.
### 7.2 Requesting Additional Platform Access
- If you wish to expand your staff role to other platforms:
- Express your interest to an admin or through the designated channel for such requests.
- Specify which additional platform(s) you'd like to moderate.
- Briefly explain why you're interested in moderating these additional platforms.
### 7.3 Approval Process
- Requests for additional platform access will be reviewed by the admin team.
- Factors considered in the approval process may include:
- Your performance in your current role
- Your familiarity with the requested platform
- The current staffing needs on that platform
### 7.4 Training and Onboarding
- If approved for a cross-platform role, you may be required to undergo platform-specific training.
- Familiarize yourself with any unique rules or moderation tools for the new platform.
### 7.5 Responsibilities of Cross-Platform Staff
- Maintain consistency in rule enforcement across all platforms you moderate.
- Be aware of platform-specific nuances and adjust your approach accordingly.
- Help bridge communication between different platform teams.
### 7.6 Benefits of Cross-Platform Moderation
- Provides a more cohesive user experience across our community's various platforms.
- Allows for more efficient sharing of information and moderation strategies.
- Enhances your skills and versatility as a moderator.
### 7.7 Balancing Responsibilities
- Ensure that taking on additional platforms does not negatively impact your performance on your original platform.
- Communicate with the moderation team if you feel overwhelmed or need to scale back your responsibilities.
### 7.8 Periodic Review
- Your cross-platform roles will be periodically reviewed to ensure effective moderation across all assigned platforms.
- Feedback and additional training may be provided as needed.

1
src/env.d.ts vendored Normal file
View File

@ -0,0 +1 @@
/// <reference path="../.astro/types.d.ts" />

67
src/pages/index.astro Normal file
View File

@ -0,0 +1,67 @@
---
---
<!--
We used to use Docsify, so rather than breaking links we borrowed this from freeCodeCamp
to make our things work.
-->
<script>
document.addEventListener('DOMContentLoaded', () => {
const { hash } = window.location;
if (!hash || hash === '#/' || hash === '#') {
window.location.replace('/intro');
return;
}
if (hash === "#/coc") {
window.location.replace('/community/coc');
return;
}
if (hash === "#/coc") {
window.location.replace('/community/coc');
return;
}
if (hash === "#/coc") {
window.location.replace('/community/coc');
return;
}
if (hash === "#/coc") {
window.location.replace('/community/coc');
return;
}
if (hash.startsWith('#/')) {
const [newPath, newHash] = hash.slice(2).split('?id=');
window.location.replace(
newHash ? `/${newPath}/#${newHash}` : `/${newPath}`
);
return;
}
window.location.replace('/intro');
});
</script>
<style>
.loader {
border: 8px solid #0a0a23;
border-top: 8px solid #f3f3f3;
border-radius: 50%;
width: 40px;
height: 40px;
animation: spin 2s linear infinite;
margin: auto;
position: absolute;
top: 0;
left: 0;
bottom: 0;
right: 0;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
</style>
<div class='loader'></div>

53
src/styles/style.css Normal file
View File

@ -0,0 +1,53 @@
:root,
:root[data-theme="light"] {
--primary-color: #04624f;
--background-color: #abfcecdd;
}
:root[data-theme="dark"] {
--background-color: #04624fdd;
--primary-color: #abfcec;
}
.main-frame::before {
background: url(https://cdn.nhcarrigan.com/background.png);
background-size: cover;
background-position: center;
width: 100%;
height: 100%;
z-index: -1;
content: "";
position: fixed;
top: 0;
left: 0;
right: 0;
bottom: 0;
opacity: 1;
pointer-events: none;
}
.main-pane {
margin: auto;
background-color: var(--background-color);
color: var(--primary-color);
}
.sidebar-pane,
.right-sidebar-panel {
background-color: var(--background-color);
color: var(--primary-color);
}
h1,
h2,
h3,
h4,
h5,
h6 {
color: var(--primary-color) !important;
}
header {
color: var(--primary-color) !important;
background-color: var(--background-color) !important;
}