Ways to contribute
There are many ways to contribute to gSubs:Code contributions
Add features, fix bugs, or improve performance
Documentation
Write tutorials, improve docs, or create guides
Bug reports
Report issues and help identify problems
Feature requests
Suggest new features and improvements
Getting started
Fork the repository
Fork the gSubs repository to your own GitHub account. This creates your own copy where you can make changes.
Set up your development environment
Create a feature branch
Create a new branch for your work:Use descriptive branch names:
feature/add-subtitle-previewfix/drag-drop-validationdocs/update-readme
Make your changes
Write your code, following the guidelines below. Make sure to:
- Test your changes thoroughly
- Follow the existing code style
- Add comments for complex logic
- Update documentation if needed
Commit your changes
Write clear, descriptive commit messages:
Use present tense (“Add feature” not “Added feature”) and be specific about what changed.
Contribution guidelines
Code style
Follow the existing code style in the project:- Indentation: Use consistent indentation (the project uses spaces)
- Naming: Use descriptive variable and function names
- Comments: Add comments for complex logic or non-obvious behavior
- jQuery: Follow jQuery conventions for DOM manipulation
Testing your changes
Before submitting a pull request:Test all features
Test all features
- Drag and drop: Try single and multiple files
- Search: Test with various movie/series names
- Language selection: Switch between different languages
- Download: Verify subtitles download correctly
Test edge cases
Test edge cases
- Invalid file types
- Network errors
- No search results
- Multiple subtitle matches
- Empty search queries
Test on your platform
Test on your platform
Test the app on your operating system:
- Windows: Run
npm run dist:win - macOS: Run
npm run dist:mac - Linux: Run
npm run dist:linux
Commit message format
Write clear commit messages that explain what and why:Pull request guidelines
When creating a pull request:- Title: Use a clear, descriptive title
- Description: Explain what changes you made and why
- Screenshots: Include screenshots for UI changes
- Testing: Describe how you tested your changes
- Breaking changes: Note any breaking changes
Your pull request will be reviewed by maintainers. Be patient and responsive to feedback.
Types of contributions
Adding features
When adding new features:- Discuss first: Open an issue to discuss the feature before implementing
- Keep it simple: Follow the existing UI/UX patterns
- Update docs: Add documentation for new features
- Test thoroughly: Ensure the feature works across platforms
Fixing bugs
When fixing bugs:- Reference the issue: Link to the GitHub issue in your PR
- Explain the fix: Describe what caused the bug and how you fixed it
- Add prevention: Consider how to prevent similar bugs in the future
- Test the fix: Verify the bug is actually fixed
Improving documentation
Documentation improvements are always welcome:- Fix typos and grammar
- Add code examples
- Clarify confusing sections
- Add troubleshooting tips
- Create tutorials
Adding subtitle sources
To add a new subtitle source:- Find a subtitle API with good coverage
- Add the npm package to dependencies
- Implement the search logic in
app/renderer/checksub.js - Update the search order in
app/renderer/index.js - Test with various video files
- SubDB (hash-based matching)
- OpenSubtitles (search and metadata)
- Addic7ed (TV shows)
Code review process
After submitting a pull request:- Automated checks: Wait for any automated checks to complete
- Maintainer review: A maintainer will review your code
- Feedback: Address any requested changes
- Approval: Once approved, your PR will be merged
- Recognition: Your contribution will be credited
Contributors are recognized on the gSubs Contributors page.
Community guidelines
Please be respectful and constructive:- Be respectful: Treat everyone with respect
- Be patient: Maintainers are volunteers
- Be constructive: Provide helpful feedback
- Be collaborative: Work together to improve gSubs
Getting help
If you need help:- Check the docs: Read the setup guide and architecture guide
- Search issues: Look for similar issues on GitHub
- Ask questions: Open a GitHub issue with your question
- Be specific: Provide details about your environment and the problem
License
By contributing to gSubs, you agree that your contributions will be licensed under the MIT License. All contributions are copyright © Cholaware.Financial contributions
If you’d like to support gSubs financially:- PayPal: paypal.me/sanjevirau
- Use case: Donations help fund development and releases for macOS and Linux
Next steps
Ready to contribute?Setup guide
Get your development environment ready
Architecture
Learn how gSubs works internally
Building
Build gSubs for distribution
GitHub issues
Find issues to work on
Thank you for contributing to gSubs! Every contribution, no matter how small, helps make gSubs better for everyone.