# Contributing to SocialLive Thank you for contributing! This project welcomes contributions of all kinds — code, docs, tests, bug reports, feature ideas. --- ## Ways to Contribute | Type | How | |------|-----| | **Bug reports** | Open a GitHub Issue with steps to reproduce | | **Feature requests** | Open a GitHub Issue with use case | | **Documentation** | Fix typos, add examples, translate | | **Code** | Fork → branch → PR with tests | | **Testing** | Run on unusual platforms (Termux, ARM, Windows) | --- ## Development Workflow 1. **Fork** the repository 2. **Clone** your fork: `git clone https://github.com/your-username/social-live.git` 3. **Create a branch**: `git checkout -b feat/amazing-feature` 4. **Make changes** with tests 5. **Verify**: ```bash npm run build npm test npm run typecheck ``` 6. **Commit** with clear messages: ``` feat(streaming): add Twitch platform adapter - Implements PlatformAdapter for Twitch ingest - Adds stream key validation (live_ prefix) - Includes unit and integration tests ``` 7. **Push** and open a **Pull Request** --- ## Code Standards - **TypeScript strict mode** — no `any`, no implicit `any` - **Tests required** for new features (unit + integration where applicable) - **No console.log** in production code — use the logger - **No shell interpolation** — ever (FFmpeg args via array) - **Shared schemas** — validation lives in `@social-live/shared` - **Accessibility** — semantic HTML, ARIA labels, keyboard navigation --- ## Commit Message Format Follow [Conventional Commits](https://www.conventionalcommits.org/): ``` ():