# Contributing to Keynest
Thanks for your interest in contributing to Keynest! 🎉
Contributions of all kinds are welcome.
---
## Ways to Contribute
You can help by:
- Reporting bugs
- Suggesting features
- Improving documentation
- Writing tests
- Submitting code changes
- Reviewing pull requests
---
## Getting Started
1. Fork the repository
2. Create a new branch
3. Make your changes
4. Run tests (if applicable)
5. Open a pull request
---
## Development Guidelines
### Code Style
- Follow standard Rust formatting (`cargo fmt`)
- Prefer clarity over cleverness
- Avoid unnecessary abstractions
### Error Handling
- Use explicit error types where reasonable
- Avoid panics in library code
- Provide helpful error messages
### Security
- Never introduce custom cryptography
- Prefer well-reviewed crates
- Treat all secret data with care
---
## Commit Messages
Please write clear and descriptive commit messages.
Example:
---
## Pull Requests
When opening a PR, please:
- Explain **what** the change does
- Explain **why** it is needed
- Reference related issues if applicable
Small, focused PRs are preferred.
---
## Code of Conduct
Be respectful and constructive.
Harassment or abusive behavior will not be tolerated.
---
Thank you for helping make Keynest better ❤️