A comment says what a user felt, and a screenshot shows what they saw. This guide explains how Nitpick takes a screenshot in an Expo app, what the user can do with it and where it falls short, so you know what to expect before real users send reports.
When the screenshot is taken
Nothing is captured before the user opens the panel. The user chooses Point at something, taps the part of the screen they mean, and the component takes a picture of the current screen. The form shows a preview with the tap position, and the Remove image button drops the picture so that only the comment is sent.
How it works in Expo
The component calls captureScreen from react-native-view-shot, a library that is included in Expo Go. You add it with npx expo install react-native-view-shot, which picks the version that matches your SDK. The tab, the pointing layer and the panel are hidden while the picture is taken, so they are not in it.
The result is a JPEG with its longest side at most 1600 pixels. If it is larger than 1 MB, it is encoded again at lower quality until it fits.
Where view-shot falls short
The screenshot is a rendering of your React Native views, not a copy of the pixels on the display. That has consequences:
- It is not pixel perfect.
- A ScrollView shows only the part that is visible.
- Video, maps and web views can come out empty.
- Elements in screens that stay mounted but hidden are ignored when they are off screen.
If you see a blank area on a report, check whether it was one of these views. The tap position and the element name still tell you where the user pointed.
Cover what must not be seen
Nothing is masked automatically in Expo. Wrap sensitive parts in NitpickMask, and they become a black box in the picture only, not on the screen of the user:
import { NitpickMask } from "@nitpickhq/react-native";
<NitpickMask><TextInput value={cardNumber} /></NitpickMask>
Cover payment details, personal data and password fields. The preview shows the masked picture before the user sends.
What your agent gets
Over MCP your agent gets the comment and the screenshot as an image, with the tap position and the frame of the named element drawn on it. Frames are measured in points from the top left of the window, the same space as the tap, so they line up. Name the elements with NitpickElement, for example checkout.pay-button, so the report leads to a line of code.
Where it was tested
This was checked in Expo Go on iOS. A plain React Native app without Expo modules, and a build on Android, have not been tested for this guide. Screenshots are removed 12 months after the report was made; the report itself stays.
Keep reading
New here? Read adding in-app feedback to an Expo app first. The store forms ask about the screenshot too: see Google Play Data safety for a feedback component. The whole flow with an agent is on Codex with Expo, and the install steps are in Install for Expo.