Adapters overview
bugfreedback separates screenshot storage from export (where feedback tickets land). Configure both in nuxt.config.ts; secrets can also come from environment variables (see each guide).
Storage
Upload annotated screenshots to object storage so export adapters can embed durable HTTPS URLs.
| Provider | Guide |
|---|---|
| Google Cloud Storage | GCS / storage |
| S3-compatible (AWS, R2, MinIO) | S3 storage |
| Disabled | No storage |
Export
Route each submission to one export destination:
| Provider | Creates | Guide |
|---|---|---|
github | GitHub Issue | GitHub |
linear | Linear issue | Linear |
jira | Jira issue | Jira |
notion | Notion database page | Notion |
slack | Slack message (incoming webhook) | Slack |
asana | Asana task | Asana |
trello | Trello card | Trello |
webhook | HTTP POST to your URL | Webhook |
ifttt | IFTTT Maker Webhook trigger | IFTTT |
Typical production stack
ts
// nuxt.config.ts — GitHub Issues + GCS storage
export default defineNuxtConfig({
modules: ['@nuxt/ui', '@bugfreedback/bugfreedback'],
bugfreedback: {
enabled: true,
storage: {
provider: 'gcs',
bucket: process.env.BUGFREEDBACK_GCS_BUCKET || '',
objectPrefix: 'feedback/',
},
export: {
provider: 'github',
token: process.env.BUGFREEDBACK_GITHUB_TOKEN || '',
owner: 'your-org',
repo: 'your-app',
labels: ['feedback', 'from:widget'],
},
},
})See Local demo to run the playground and Configuration for theme and auth options.