vitrinkaDocsBack to the vitrína

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-controller

Add 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.