In-app feedback → GitHub Issues. Screenshots, annotations, the works.
Works with both public and private repositories!
1. Install the GitHub App on your repository:
https://github.com/apps/neonwatty-bugdrop/installations/new
2. Add the script to your website:
<script src="https://bugdrop.neonwatty.workers.dev/widget.js"
data-repo="owner/repo"></script>That's it! Users can now click the bug button to submit feedback as GitHub Issues.
| Attribute | Values | Default |
|---|---|---|
data-repo |
owner/repo |
required |
data-theme |
light, dark, auto |
auto |
data-position |
bottom-right, bottom-left |
bottom-right |
data-show-name |
true, false |
false |
data-require-name |
true, false |
false |
data-show-email |
true, false |
false |
data-require-email |
true, false |
false |
<script src="https://bugdrop.neonwatty.workers.dev/widget.js"
data-repo="owner/repo"
data-theme="dark"
data-position="bottom-left"></script>By default, BugDrop only asks for a title and description. You can optionally collect user name and email:
<!-- Require name, optional email -->
<script src="https://bugdrop.neonwatty.workers.dev/widget.js"
data-repo="owner/repo"
data-show-name="true"
data-require-name="true"
data-show-email="true"></script>When provided, submitter info appears at the top of the GitHub issue.
Try it on WienerMatch — click the bug button in the bottom right corner.
User clicks bug button → Widget captures screenshot → Worker authenticates via GitHub App → Issue created in your repo
- Widget loads in a Shadow DOM (isolated from your page styles)
- Screenshot captured client-side using html2canvas
- Worker (Cloudflare) exchanges GitHub App credentials for an installation token
- GitHub API creates the issue with the screenshot stored in
.bugdrop/
- Permissions: Issues (R/W), Contents (R/W) - only on repos you install it on
- Data storage: Screenshots stored in your repo's
.bugdrop/folder - Privacy: No user data stored by the widget service
Want to run your own instance? See SELF_HOSTING.md.
MIT
