Contributing
How to contribute to Yap
We welcome contributions to Yap! This guide explains how to get involved.
Ways to Contribute
- Bug Reports — Found a bug? Open an issue
- Feature Requests — Have an idea? Start a discussion
- Code — Fix bugs or implement features
- Documentation — Improve docs or add examples
- Testing — Test on different platforms
Getting Started
- Fork the repository on GitHub
- Clone your fork locally
- Set up the development environment (see Building)
- Create a branch for your changes
git clone https://github.com/YOUR_USERNAME/yap.git
cd yap
git checkout -b feature/your-feature-name
Development Workflow
1. Make Changes
Edit code, add features, fix bugs.
2. Test Locally
wails dev
Test your changes thoroughly:
- Does the feature work as expected?
- Are there any regressions?
- Test on your platform
3. Commit Changes
We use Conventional Commits:
# Feature
git commit -m "feat: add support for custom hotkeys"
# Bug fix
git commit -m "fix: resolve crash when no microphone connected"
# Documentation
git commit -m "docs: update installation instructions"
# Refactoring
git commit -m "refactor: simplify audio recording logic"
# Chore
git commit -m "chore: update dependencies"
Commit types:
feat— New featurefix— Bug fixdocs— Documentation onlystyle— Formatting, no code changerefactor— Code change that neither fixes nor addstest— Adding testschore— Maintenance tasks
4. Push and Create PR
git push origin feature/your-feature-name
Then open a Pull Request on GitHub.
Pull Request Guidelines
Title
Use conventional commit format:
feat: add dark mode toggle
fix: correct transcription timing
Description
Include:
- What changes were made
- Why the changes were made
- How to test the changes
- Screenshots (for UI changes)
Checklist
Before submitting:
- Code builds without errors
- Code follows existing style
- Changes are tested
- Commit messages follow convention
- Documentation updated (if needed)
Code Style
Go
- Follow standard Go conventions
- Run
go fmtbefore committing - Use meaningful variable names
TypeScript/React
- Use TypeScript strict mode
- Follow existing component patterns
- Keep components focused
Reporting Issues
Bug Reports
Include:
- Platform (macOS version, Windows version, Linux distro)
- Yap version
- Steps to reproduce
- Expected vs actual behavior
- Error messages (if any)
Feature Requests
Include:
- Use case description
- Proposed solution
- Alternatives considered
Getting Help
- Discussions — For questions and ideas
- Issues — For bugs and feature requests
- Pull Requests — For code contributions
License
By contributing, you agree that your contributions will be licensed under the MIT License.