Expo and React Native
@vitrinka/expo is the Expo toolkit. Today it carries the journey recorder, which is stripped from the bundle at compile time on any build that is not explicitly allowlisted.
Install
npx expo install @vitrinka/expo react-native-view-shot react-native-keyboard-controllerAdd the config plugin
Allowlist the build profiles that are permitted to carry the recorder.
{
"expo": {
"plugins": [
["@vitrinka/expo", { "allowedProfiles": ["development"] }]
]
}
}Wire Metro
One required line. The config plugin verifies it is present, so a missing wrapper fails the build rather than silently shipping the recorder.
// metro.config.js
const { withRecorderStrip } = require('@vitrinka/expo/recorder/metro');
module.exports = withRecorderStrip(config);Mount it
The recorder mounts only on builds that explicitly set both EXPO_PUBLIC_VITRINKA_URL and EXPO_PUBLIC_VITRINKA_TOKEN. On every other build the entire recorder is stripped from the bundle at compile time.
import { VitrinkaRecorderRoot } from '@vitrinka/expo/recorder';Source-available under the Elastic License 2.0: read, use, modify and redistribute it — you may not offer it to third parties as a managed service.