Tester feedback
Tester feedback for an Expo app, compared: Feedback sheet, or none - Expo Go support and what each option installs.
Hey - here's how tester feedback works in ReadyNative.
This category owns the in-app channel testers use to tell you what is wrong: the sheet they open, and the one call that delivers what they wrote.
@/lib/feedback always exists, whichever option you pick: feedback.open(), feedback.send(report) and feedbackEnabled read the same in both, and feedback/none is a no-op. Calls you write against the shim keep working when you switch options, and nothing crashes when a webhook URL or Sentry DSN is missing - every option degrades to a no-op.
- feedback - testers shake the device or tap "Send feedback" in Settings, write a note, and optionally attach a screenshot and an address to reply to. The report carries the app version, build number, update id, OS and the current route, so "the totals are wrong" arrives with enough to reproduce it. The sheet is on by default in development and preview builds and off in production;
features.feedbackinreadynative.config.tssets it to"testers"(the default),"everyone"or"off". Pick it when a build goes to people who are not you. - none - nothing opens and nothing is sent:
feedback.open()does nothing,feedback.send()resolves toundefined, and there is no Settings row. Right when you ship no tester builds.
Reports are delivered through one list of sinks in src/lib/feedback-sinks.ts, and the first one available wins:
- a webhook, when
EXPO_PUBLIC_FEEDBACK_WEBHOOK_URLis set; - Sentry User Feedback, when
crash/sentryis selected with a DSN and the user has given crash consent; - otherwise a prefilled email to
urls.support.
Adding or removing a destination is one line in that list.
This category is part of ReadyNative Pro.
Options
One option per category - --feedback <option> picks it:
bun run setup --feedback feedback