Contributing to Thunder
Thank you for your interest in contributing to Thunder! We welcome contributions of all kindsβfrom fixing typos to proposing major features. This guide will help you understand how you can contribute.
π― Ways to Contributeβ
Thunder welcomes different types of contributions, and you can participate at any level:
| Contribution Type | Documentation |
|---|---|
| Bug Reports | Report a bug |
| Documentation | Improve docs |
| Bug Fixes | Fix a bug |
| Minor Improvements | Make improvements |
| Share Ideas & Define Problems | Problem definition |
| Design Features | Design proposals |
| Implement Features | Development guide |
You don't need to do everything! You can:
- Share an idea and let someone else design & implement it
- Design a solution and let someone else implement it
- Implement someone else's approved design
- Mix and match based on your interests and availability
π Reporting Bugsβ
Found a bug? Help us fix it!
Before You Reportβ
- Search existing issues to avoid duplicates
- Check if the bug exists in the latest version
- Gather logs, error messages, and reproduction steps
Create a Bug Reportβ
- Go to Issues β New Issue
- Select "Bug Report" template
- Fill in all required sections
- Submit the issue
Good bug reports include:
- Clear, specific title: "OAuth2 token refresh fails with 401 after 30 minutes"
- Minimal reproduction steps
- Actual vs. expected behavior
- Logs and error messages (sanitize sensitive data!)
- Environment details
π Improving Documentationβ
Documentation improvements are always welcome!
Types of Documentationβ
- User guides - How to use Thunder features
- API documentation - Endpoint specifications
- Admin guides - Configuration and deployment
- Code comments - Inline explanations
- Examples - Sample code and tutorials
How to Contributeβ
Option 1: Fix Documentation Directly (Encouraged!)β
We encourage you to fix documentation yourself when possible:
- Identify what needs improvement (typos, outdated info, missing content)
- Fork the repo and make changes
- Submit a PR with clear description of what you changed
Option 2: Report Documentation Issuesβ
If you spot documentation problems but can't fix them yourself:
- Go to Issues β New Issue
- Select "Documentation Issue" template or create a general issue
- Describe what needs improvement (missing info, errors, unclear sections)
- Submit the issue for others to fix
Tips:
- Write for beginners (don't assume knowledge)
- Use examples and code snippets
- Test any code examples you add
- Check spelling and grammar
π§ Fast Track Contributionsβ
Bug fixes, documentation, and minor improvements don't require a design proposal.
What Qualifies for Fast Track?β
β YES - Use Fast Track:
- Bug fixes
- Documentation improvements
- Minor API additions (no architectural changes)
- Performance optimizations (no behavior changes)
- Test improvements
- Code cleanup/refactoring (same behavior)
β NO - Use Feature Process:
- New authentication/authorization flows
- Breaking API changes
- New IAM capabilities
- Database schema changes
- Significant architectural changes
When in doubt? Ask in Discussions
Fast Track Processβ
- Create or find an issue - Search first to avoid duplicates
- Get assigned - Comment "I'd like to work on this" and wait for maintainer assignment
- Fork the Thunder repository - Create your own copy to work on
- Make your changes - Include tests for code changes
- Submit a pull request - Reference the issue number
- Address review feedback - Work with reviewers to refine your changes
- Get merged - Once approved, your contribution will be merged! π
For detailed development guidelines, see our development documentation.
π¨ Fixing Bugsβ
Found a bug and want to fix it? Great! Follow the Fast Track process above.
Before you start:
- Check if someone is already working on it
- Understand the root cause
- Add tests to prevent regression
β¨ Making Improvementsβ
Have an idea for a small improvement? Use the Fast Track process.
Good improvements include:
- Better error messages
- Input validation enhancements
- Logging improvements
- Code readability refactoring
- Performance optimizations
π‘ Sharing Ideas & Defining Problemsβ
Have an idea or problem to share? Want to propose a new feature?
This is where all features start!
You can either:
- Start a discussion if your idea needs exploration and community input
- Create an issue directly if you have a clear, well-defined feature request
Choose your path:
| Your Situation | Action |
|---|---|
| You have a clear problem statement and can provide all details required in the feature template | Create a Feature Issue |
| You have a basic idea that needs exploration or clarification before creating a formal feature request | Create a Discussion in Idea Category |
β Learn more: Problem Definition Guide
π Designing Solutionsβ
Assigned to a feature? Time to design the technical solution.
The design phase involves:
- Creating a design discussion
- Collaborating on architecture
- Writing a formal design proposal
- Getting security and technical review
β Learn more: Design Guide
π¨ Implementing Featuresβ
Ready to build an approved design?
Implementation includes:
- Breaking down the design into tasks
- Writing code with comprehensive tests
- Documenting the feature
- Deploying with feature flags
β Learn more: Development Guide
π₯ How Contributions Work Togetherβ
Thunder features often involve contributions from multiple people:
- Idea contributor β Shared the problem in a discussion
- Problem definer β Created the formal feature request
- Designer β Wrote the design proposal
- Implementer β Built the feature
- Documenter β Wrote user guides
- Tester β Provided early feedback
You can contribute to any part of this journey! Your contribution is valuable even if you don't complete the entire feature yourself.
Welcome to the Thunder community! β‘π
Questions? Ask in Discussions