Contributing to Screenize
March 23, 2026 · View on GitHub
Thanks for considering a contribution! Whether it's a bug report, feature idea, or pull request — it all helps.
Code of Conduct
Be respectful and constructive. We want this to be a welcoming space for everyone.
Ways to Contribute
Found a Bug?
- Search existing issues first — someone might have reported it already
- If not, open a new issue with:
- Steps to reproduce
- What you expected vs. what happened
- Your macOS and Xcode versions
- Screenshots or screen recordings if they help
Have an Idea?
- Check existing issues for similar suggestions
- Open a new issue describing:
- The problem or use case you're solving
- Your proposed approach
- Alternatives you considered
Want to Submit Code?
- Fork the repo
- Create a branch from
main(git checkout -b feature/your-feature) - Make your changes
- Run the linter and make sure it builds
- Push to your fork and open a pull request
- Describe what changed and why in the PR
Development Setup
git clone https://github.com/YOUR_USERNAME/screenize.git
cd screenize
open Screenize.xcodeproj
Cmd+B to build, Cmd+R to run.
If permissions break during development:
tccutil reset ScreenCapture com.screenize.Screenize
tccutil reset Microphone com.screenize.Screenize
Style Guide
Code
We use SwiftLint. Run it before submitting:
./scripts/lint.sh # Check
./scripts/lint.sh --fix # Auto-fix
Key conventions:
@MainActoron all major state classesManager/Coordinatorsuffixes for orchestration classesSendabletypes and dispatch queues for thread safety- Normalized coordinates (0–1) for mouse positions
- Keyframes sorted by time within tracks
Commits
- Imperative mood: "Add feature" not "Added feature"
- First line under 72 characters
- Reference issues when applicable:
Fix #123
Testing
There's no automated test suite yet. If you're adding new functionality, consider including tests — contributions that improve test coverage are especially welcome.