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.
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/feedbackTriage
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.