Skip to main content

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.

Canonical Source

The canonical contribution guidelines are in the GitHub repository.

Quick Start

  1. Fork the repository on GitHub
  2. Clone your fork locally
  3. Create a feature branch
  4. Make your changes
  5. 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

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 any types
  • 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

  1. Create a feature branch

    git checkout -b feature/my-awesome-feature
  2. Follow commit conventions

    feat: add new feature
    fix: resolve bug in reports
    docs: update API documentation
  3. Ensure tests pass

    bun run typecheck
    bun run test
  4. Submit PR with:

    • Clear description of changes
    • Link to related issues
    • Screenshots for UI changes
  5. Address review feedback

  6. 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?

Resources


Thank you for contributing to BugPin!

We use cookies for analytics to improve our website. More information in our Privacy Policy.