# Contributing to siggy
Thanks for your interest in contributing! Here's how to get started.
## Getting started
1. Fork the repo and clone your fork
2. Install prerequisites: Rust 1.70+ and [signal-cli](https://github.com/AsamK/signal-cli)
3. Build and run tests:
```sh
cargo build
cargo test
```
Use `--demo` mode to test the UI without a Signal account:
```sh
cargo run -- --demo
```
## Making changes
1. Create a feature branch from `master`:
```sh
git checkout -b feature/my-change
```
2. Make your changes. Run checks before committing:
```sh
cargo clippy --tests -- -D warnings
cargo test
```
3. Push your branch and open a pull request against `master`.
## Branch naming
Use prefixed names: `feature/`, `fix/`, `refactor/`, `docs/`
Examples: `feature/dark-mode`, `fix/unread-count`, `docs/update-readme`
## Code style
- Follow existing patterns in the codebase
- Run `cargo clippy` with warnings as errors -- CI enforces this
- Keep commits focused: one logical change per commit
- Write descriptive commit messages
## Reporting bugs
Use the [bug report template](https://github.com/johnsideserf/siggy/issues/new?template=bug_report.yml). Include your OS, terminal emulator, and siggy version.
## Suggesting features
Use the [feature request template](https://github.com/johnsideserf/siggy/issues/new?template=feature_request.yml). Describe the problem you're trying to solve.
## License
By contributing, you agree that your contributions will be licensed under [GPL-3.0](LICENSE).