> ## Documentation Index
> Fetch the complete documentation index at: https://mintlify.com/stormkit-io/stormkit-io/llms.txt
> Use this file to discover all available pages before exploring further.

# Contributing Overview

> Learn how to contribute to Stormkit and help make it better

Thank you for your interest in contributing to Stormkit! We welcome contributions from the community and are excited to see what you'll bring to the project.

## 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:

1. **Search existing issues** to avoid duplicates
2. **Use the issue templates** when available
3. **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:

1. **Check existing feature requests** first
2. **Describe the problem** you're trying to solve
3. **Explain your proposed solution**
4. **Consider the scope**: CE vs EE features
5. **Think about implementation complexity**

## Pull Request Process

<Steps>
  <Step title="Fork the repository">
    Create your own fork of the Stormkit repository on GitHub.
  </Step>

  <Step title="Create a feature branch">
    ```bash theme={null}
    git checkout -b feature/your-feature-name
    ```
  </Step>

  <Step title="Make your changes">
    * Follow our coding standards
    * Add tests for new functionality
    * Update documentation if needed
  </Step>

  <Step title="Test your changes">
    Ensure all tests pass before submitting your PR. See the [Local Development](/contributing/local-development#testing) guide for testing instructions.
  </Step>

  <Step title="Commit your changes">
    Use [Conventional Commits](https://www.conventionalcommits.org/) format:

    ```bash theme={null}
    git commit -m "feat: add new feature description"
    ```

    Commit types:

    * `feat:` for new features
    * `fix:` for bug fixes
    * `docs:` for documentation changes
    * `test:` for test changes
    * `refactor:` for code refactoring
    * `chore:` for maintenance tasks
  </Step>

  <Step title="Push and create PR">
    ```bash theme={null}
    git push origin feature/your-feature-name
    ```

    Then create a pull request on GitHub.
  </Step>
</Steps>

## 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](https://github.com/golang/go/wiki/CodeReviewComments)
* Use `gofmt` for formatting
* Use `golangci-lint` for 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](https://github.com/stormkit-io/stormkit-io/blob/main/CODE_OF_CONDUCT.md). 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](mailto: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

By contributing to this project, you agree that your contributions will be licensed under the same license as the component you're contributing to.

## Getting Help

### Community Support

* **Discussions**: Use GitHub Discussions for questions
* **Issues**: Report bugs via GitHub Issues
* **Email**: Contact us at [hello@stormkit.io](mailto:hello@stormkit.io)
* **Website**: Visit [stormkit.io](https://www.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

Thank you for contributing to Stormkit!
