Welcome Contributors
We’re excited you want to contribute to VoiceTypr! This guide will help you get started with the contribution process.Ways to Contribute
- Report bugs - Submit detailed bug reports
- Suggest features - Propose new functionality
- Fix issues - Pick up issues from GitHub
- Improve docs - Enhance documentation
- Write tests - Increase test coverage
- Review PRs - Help review pull requests
Getting Started
Fork the Repository
Fork VoiceTypr on GitHub to your account.
Set Up Development Environment
Follow the development setup guide to install dependencies and configure your environment.
Branch Workflow
Branch Naming Convention
Use prefixes that match commit types:feat/- New featuresfix/- Bug fixesdocs/- Documentation changesrefactor/- Code refactoringtest/- Adding testschore/- Maintenance tasks
Example Workflow
Commit Conventions
We follow Conventional Commits specification:Commit Format
Commit Types
- feat - New feature
- fix - Bug fix
- docs - Documentation changes
- refactor - Code refactoring (no functional changes)
- test - Adding or updating tests
- chore - Maintenance tasks (dependencies, config)
- perf - Performance improvements
- style - Code style changes (formatting, semicolons)
Examples
Commit Guidelines
- Use present tense (“add feature” not “added feature”)
- Keep first line under 72 characters
- Reference issues/PRs when applicable
- Explain why not just what in the body
Pull Request Process
Run Quality Checks
Before creating a PR, ensure all checks pass:This runs:
- TypeScript type checking
- ESLint
- Frontend tests (Vitest)
- Backend tests (Cargo test)
Create Pull Request
- Go to VoiceTypr repository
- Click “New Pull Request”
- Select your branch
- Fill out the PR template
Pull Request Template
Code Review Expectations
For Contributors
- Be responsive - Reply to feedback within 2-3 days
- Be open - Consider reviewer suggestions
- Ask questions - Clarify unclear feedback
- Keep PRs focused - One feature/fix per PR
For Reviewers
- Be constructive - Suggest improvements, don’t just criticize
- Be specific - Explain why changes are needed
- Be timely - Review within 3-5 days
- Approve when ready - Don’t block on minor style issues
Review Checklist
- Code follows style guidelines
- Tests are included and passing
- Documentation is updated
- No breaking changes (or properly documented)
- Performance impact is acceptable
- Security concerns are addressed
Development Guidelines
Before Committing
Always run quality checks:Pre-Commit Checklist
- Code is properly formatted (
pnpm format) - No TypeScript errors (
pnpm typecheck) - No linting errors (
pnpm lint) - Tests pass (
pnpm test:all) - Commit message follows conventions
- Changes are documented
Git Best Practices
Issue Guidelines
Reporting Bugs
Include:- VoiceTypr version - Check in app settings
- Operating system - macOS version or Windows 10/11
- Steps to reproduce - Clear, numbered steps
- Expected behavior - What should happen
- Actual behavior - What actually happens
- Logs - Check
~/Library/Logs/VoiceTypr/(macOS)
Suggesting Features
Include:- Use case - Why is this needed?
- Proposed solution - How should it work?
- Alternatives - Other approaches considered
- Examples - Similar features in other apps
Communication
Where to Get Help
- GitHub Discussions - General questions and ideas
- GitHub Issues - Bug reports and feature requests
- Pull Request Comments - Code-specific discussions
Response Times
- Issues - Response within 3-5 days
- Pull Requests - Initial review within 5-7 days
- Urgent bugs - Response within 1-2 days
License
By contributing to VoiceTypr, you agree that your contributions will be licensed under the GNU Affero General Public License v3.0.Recognition
All contributors are recognized in:- GitHub contributors list
- Release notes for significant contributions
- Special thanks in major version releases
Next Steps
- Review code style guidelines
- Check architecture overview
- Read testing documentation
- Browse open issues
Thank you for contributing to VoiceTypr!