Hashdrop
← All documentation

In-app feedback

Get the build, the device and a screenshot with every bug report.

The SDK is one file with no dependencies. It works in React Native, in a browser, and anywhere else with fetch. A report arrives with the exact build, version, device, OS and whatever else you attach — so nobody has to ask 'which version were you on?'

1. Get a key

On the app's page, under In-app feedback, create a key. It looks like hsf_… and is shown once.

This key is meant to live in your app binary. Anyone can extract it, and that is fine: it can only append a report to one app. It cannot read anything back.

2. Add the SDK

Download hashdrop-feedback.js from the same panel and drop it into your project.

import { createFeedback } from "./hashdrop-feedback";
import DeviceInfo from "react-native-device-info";

export const feedback = createFeedback({
  key: "hsf_YOUR_KEY",
  endpoint: "https://hashdrop.io/api/feedback",
  app: {
    version: DeviceInfo.getVersion(),
    build: DeviceInfo.getBuildNumber(),
    platform: Platform.OS,
  },
  device: {
    model: DeviceInfo.getModel(),
    os: DeviceInfo.getSystemVersion(),
  },
});

3. Send a report

// once you know who is using the app
feedback.identify({ name: user.name, email: user.email });

// from your "report a problem" screen
const result = await feedback.send({
  message: text,
  kind: "BUG",              // BUG | IDEA | OTHER
  screenName: "Checkout",
  extra: { orderId: order.id },
});

if (!result.ok) {
  // result.error is a string; nothing here ever throws
}

Screenshots

Pass a Blob, a File, or a React Native file object as `screenshot` and it is uploaded with the report, up to 5 MB. Screenshots are visible only to your organisation — they can show anything that was on screen.

Posting without the SDK

curl -H "X-Hashdrop-Key: hsf_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{"message":"Save does nothing","kind":"BUG","appVersion":"1.2.8"}' \
  https://hashdrop.io/api/feedback

Triage

Reports land in Feedback, filtered by status and by app. Move one through Open → In progress → Resolved, add a note, or assign it to yourself. Clients can read feedback too — watching their reports get picked up is most of what a portal is for.

Rate limits

120 reports per key and 20 per device address, each per ten minutes. A real test round never comes close; a loop in your code does.