Community Edition vs Enterprise Edition
Stormkit has two editions with different licensing and contribution models:- Community Edition (
src/ce/): Licensed under AGPL-3.0, open for contributions - Enterprise Edition (
src/ee/): Proprietary, contributions require signed CLA - Shared Libraries (
src/lib/): Part of Community Edition, open for contributions
Ways to Contribute
There are many ways you can contribute to Stormkit:- Bug Reports: Found a bug? Let us know!
- Feature Requests: Have an idea? We’d love to hear it!
- Code Contributions: Fix bugs, add features, improve performance
- Documentation: Help improve our docs
- Testing: Write tests, test new features
- Translations: Help us support more languages
Reporting Issues
Before creating an issue, please:- Search existing issues to avoid duplicates
- Use the issue templates when available
- Provide detailed information:
- Stormkit version
- Operating system
- Browser (if applicable)
- Steps to reproduce
- Expected vs actual behavior
- Screenshots/logs if helpful
Suggesting Features
We love feature suggestions! Please:- Check existing feature requests first
- Describe the problem you’re trying to solve
- Explain your proposed solution
- Consider the scope: CE vs EE features
- Think about implementation complexity
Pull Request Process
1
Fork the repository
Create your own fork of the Stormkit repository on GitHub.
2
Create a feature branch
3
Make your changes
- Follow our coding standards
- Add tests for new functionality
- Update documentation if needed
4
Test your changes
Ensure all tests pass before submitting your PR. See the Local Development guide for testing instructions.
5
Commit your changes
Use Conventional Commits format:Commit types:
feat:for new featuresfix:for bug fixesdocs:for documentation changestest:for test changesrefactor:for code refactoringchore:for maintenance tasks
6
Push and create PR
PR Requirements
Your pull request should meet these requirements:- Descriptive title and description
- Tests pass (automated checks)
- Code review approved by maintainers
- Documentation updated (if applicable)
- No merge conflicts
- Signed commits (if required)
Coding Standards
Go Code
- Follow Go Code Review Comments
- Use
gofmtfor formatting - Use
golangci-lintfor linting - Write meaningful variable and function names
- Add comments for exported functions and types
- Keep functions small and focused
Testing
- Write unit tests for new functions
- Use table-driven tests when appropriate
- Mock external dependencies
- Aim for good test coverage
- Test both success and error paths
Documentation
- Use clear, concise language
- Include code examples where helpful
- Update README files when adding features
- Document breaking changes clearly
Code of Conduct
This project and everyone participating in it is governed by our Code of Conduct. By participating, you are expected to uphold this code. Instances of abusive, harassing, or otherwise unacceptable behavior may be reported to the community leaders at conduct@stormkit.io.License Compliance
- Community Edition: Your contributions will be licensed under AGPL-3.0
- Enterprise Edition: Additional licensing terms may apply
- Shared Libraries: Licensed under AGPL-3.0 as part of CE
Getting Help
Community Support
- Discussions: Use GitHub Discussions for questions
- Issues: Report bugs via GitHub Issues
- Email: Contact us at hello@stormkit.io
- Website: Visit stormkit.io for more info
Recognition
Contributors who make significant contributions may be:- Listed in our CONTRIBUTORS file
- Mentioned in release notes
- Invited to join our contributor program
- Offered swag and recognition