Contributing
BugPin is an open-source, self-hosted visual bug reporting tool built with Bun, Hono, React, and Preact. Contributions are welcome across all components: the server, admin console, embeddable widget, and documentation.
The canonical contribution guidelines are in the GitHub repository.
Quick Start
- Fork the repository on GitHub
- Clone your fork locally
- Create a feature branch
- Make your changes
- Submit a pull request
For detailed instructions, see the full contributing guide.
License Agreement
By contributing to BugPin, you agree that your contributions will be licensed under the applicable license for that component:
- Server & Admin Console: AGPL-3.0
- Widget: MIT
What This Means
When you contribute code:
- Your code is licensed under the component's license (AGPL-3.0 or MIT)
- You retain copyright of your contribution
- No separate Contributor License Agreement (CLA) required
Trademark
The BugPin licenses do not grant trademark rights.
- Contributing does not give you rights to the BugPin trademark
- You can say "I contributed to BugPin"
- You cannot use the BugPin logo for your projects
See our Trademark Policy for details.
Code of Conduct
Be respectful, inclusive, and considerate. We want BugPin to be a welcoming project for everyone.
Types of Contributions
We welcome:
- Bug fixes
- New features
- Documentation improvements
- UI/UX enhancements
- Tests
- Translations (coming soon)
Before Contributing
Check Existing Issues
- Search GitHub Issues first
- Comment if you want to work on an existing issue
- Create a new issue for new features (discuss before coding)
Read the Guidelines
- CODING-PRINCIPLES.md - Architecture and code standards
- CONTRIBUTING.md - Full contribution guide
Development Setup
# Clone the repository
git clone https://github.com/aranticlabs/bugpin.git
cd bugpin
# Install dependencies
bun install
# Start development server
bun run dev
# Run tests
bun run test
# Type checking
bun run typecheck
See the Development Guide for detailed setup.
Coding Standards
BugPin follows strict coding standards:
- TypeScript strict mode - No
anytypes - Simple architecture - Routes → Services → Repositories
- Result pattern - Services return
Result<T>for errors - American English -
color,center,organize
Full details: CODING-PRINCIPLES.md
Pull Request Process
-
Create a feature branch
git checkout -b feature/my-awesome-feature -
Follow commit conventions
feat: add new feature
fix: resolve bug in reports
docs: update API documentation -
Ensure tests pass
bun run typecheck
bun run test -
Submit PR with:
- Clear description of changes
- Link to related issues
- Screenshots for UI changes
-
Address review feedback
-
Merge - Maintainers will merge when approved
What Happens to Your Contribution?
Attribution
- You're listed as a contributor on GitHub
- Your name appears in git history
- Major contributions recognized in release notes
Licensing
- Server/Admin contributions are AGPL-3.0 licensed
- Widget contributions are MIT licensed
- Can be used in BugPin Community Edition (open source)
- May be used in BugPin Enterprise Edition (proprietary)
No Restrictions
- No "assignment" of copyright
- You keep ownership of your code
- You can use your code elsewhere
- No restrictions on future use
Enterprise Edition
BugPin has a dual-edition model:
- Community Edition (CE) - Open source (AGPL-3.0 for server/admin, MIT for widget)
- Enterprise Edition (EE) - Proprietary (Arantic Digital)
Your Contributions
Contributions to the CE repository:
- Always remain open source
- May be included in EE (this is normal for dual-licensing)
- You retain copyright
- AGPL-3.0/MIT terms apply based on component
This is standard practice (GitLab, Sentry, MongoDB all do this).
Questions?
- Technical: GitHub Discussions
- Legal/Licensing: Contact form
- Trademark: Contact form
Resources
Thank you for contributing to BugPin!