Skip to content

Open source

npm packages

Tooling I build and maintain on npm: 12 packages across 3 open-source projects, each shipping with full documentation here.

6 packages on npm

react-native-deeplink-devtools

Deep-link tooling for React Native: inspect your app's route table, validate universal links (AASA) and Android App Links (assetlinks.json), open links on simulators and devices, debug matches live, and generate TypeScript types for your deep links.

Also ships a GitHub Action that runs the same checks in CI, distributed from the repo rather than npm. GitHub Action docs

react-native-deeplink-devtools

The rndl CLI: inspect route tables, validate universal links and Android App Links, open links on simulators and devices, debug matches live, and generate typed deep links.

@deeplink-devtools/core

Route-table model, matchers, and validators for React Native deep-link tooling. Pure TypeScript, no React Native dependency.

@deeplink-devtools/adapter-expo-router

Builds a normalized deep-link route table from an Expo Router app directory.

@deeplink-devtools/adapter-react-navigation

Builds a normalized deep-link route table from a React Navigation linking configuration.

@deeplink-devtools/runtime

Tiny in-app deep-link reporter for React Native development builds. Guaranteed no-op in production.

@deeplink-devtools/typegen

Generates TypeScript route types and compile-time-checked deep-link builders from a route table.

5 packages on npm

react-native-release-health

Vendor-neutral OTA rollout health for React Native: tag every session with the active update, put fresh updates on probation, detect crash-looping rollouts on the device, and recommend or trigger rollback, exported to your own endpoint or Sentry.

react-native-release-health

The core engine: native build info, persisted launch flags, the clean-exit crash heuristic, and the health state machine that puts fresh updates on probation and detects crash loops.

@release-health/adapter-expo-updates

Adapter for expo-updates (EAS Update): reports the active update id and edge-triggered download events. Recommendation-only, since expo-updates has no client rollback API.

@release-health/adapter-hot-updater

Adapter for hot-updater: host-wired download and error events plus client-side rollback() to the embedded bundle, with autoRollback support.

@release-health/sink-http

Batching HTTP sink: buffers release-health events and posts them as JSON to any endpoint you control, with retry.

@release-health/sink-sentry

Sentry sink: tags every Sentry event with ota.update_id and ota.status and records release-health activity as breadcrumbs, so issues are segmented by rollout.

1 package on npm

react-native-doctor-ci

Policy-as-code CI gate for React Native dependency health: fail pull requests that add abandoned, non-New-Architecture, or npm-deprecated dependencies, with inline annotations and an allowlist workflow.

Also ships a composite GitHub Action that runs the changed-only PR check, distributed from the repo rather than npm. GitHub Action docs

react-native-doctor-ci

The rn-doctor CLI: enrich each dependency from the npm registry, React Native Directory, and GitHub, evaluate a .rn-doctor.yml policy, and report as pretty output, JSON, SARIF, or GitHub annotations.