-
Notifications
You must be signed in to change notification settings - Fork 1
Contributing
Thank you for your interest in contributing to the Avalanche Center Websites project! This guide will help you make meaningful contributions.
Please fill out our tech volunteer form so we know who you are and what you're interested in!
- Set up your development environment - Follow the Getting Started guide
- Understand our development guide - Read the Coding Guide page
- Review this guide - Continue below for contribution guidelines
You can start by looking at our list of issues. We do our best to keep the tags on those updated best we can. If the issue is not assigned to someone, it means no one is currently working on it.
- Check the GitHub Issues board for open issues
- Look for issues labeled
good-first-issueif you're new - Discuss large features with the team before starting work
If you found an issue you'd like to work on but need more context, it is best to ask questions directly in the issue. The repo issues are monitored by volunteers and NWAC staff who would be able to help provide more details when needed. Please be patient. We are a tiny team.
You can email us at developer@nwac.us to request to be added to our Slack channel where you can sign up to help with larger issues with a more specific timeline and talk with other volunteers who are helping out with AvyWeb.
-
Create a feature branch from main:
git checkout -b feature/your-feature-name
-
Make your changes following the existing code style
-
Test your changes:
Frontend changes: Test in your browser at
localhost:3000- Test responsive design at common breakpoints
- Ensure accessibility (keyboard navigation, screen readers)
- Test across browsers (Chrome, Safari, Firefox)
- Add necessary TypeScript types
Email changes: Test using
pnpm email:devatlocalhost:3001- Test email rendering using the preview server (
pnpm email:dev) - Test across email clients (if possible)
- Ensure responsive design for mobile
- Always use the
sendEmailutility function
Database changes: Test against a fresh seeded database
- Update the Payload schema definition
- Test against a fresh database
- Document schema changes in PR description and note any data migrations needed
- Update seed data if necessary
-
Commit your changes with clear and intentional messages
Important
All commits must be GPG signed. See Git Workflow for setup.
- Push your branch:
git push origin feature/your-feature-name
- Open a pull request filling out the entire template
- Reference any related issues (e.g., "Fixes #123")
- Ensure all checks pass (linting, tests, etc.)
- Request review from
PR Review Team
- Scope - Keep PRs focused on a single feature or fix
- Size - Aim for reviewable PRs
- Testing - Describe how you tested your changes
- Documentation - Fill out the entire PR template
- Database changes - Note any schema migrations or seed data updates
- Be open to feedback and suggestions
- Ask clarifying questions if feedback is unclear
- Respond to review comments within 48 hours when possible or your PR might be closed
- Make requested changes and re-request review
Approved team members (part of the claude-users GitHub team) can request code changes via GitHub issues mentioning @claude.
For instructions and best practices, see Claude GitHub Issues Guide.
Contributors to meaningful features and fixes will be recognized in:
- Release notes
- Project README
We're committed to providing a welcoming and inclusive environment. Please:
- Be respectful and professional
- Welcome feedback from others
- Focus on the work, not the person
- Report any issues to project maintainers
When reporting bugs, include:
- Clear description of the issue
- Steps to reproduce
- Expected vs. actual behavior
- Your environment (OS, browser, etc.)
- Screenshots if applicable
- Error messages or logs
Don't hesitate to ask! The team is here to help. You can:
- Questions? Comment on the issue or PR or if needed create a GitHub discussion
- Stuck? Reach out to a team member in Slack or comment on the issue
- Bug? Open an issue with reproduction steps
- Documentation unclear? Let us know so we can improve it or feel free to make a PR to update it yourself
Thank you for contributing!