# Rnrepo

> Best practices for integrating and using RNRepo — Software Mansion's infrastructure for pre-built React Native library artifacts that reduces native build times by up to 2×. Use when setting up, configuring, or troubleshooting RNRepo in a React Native or Expo project. Trigger on: 'RNRepo', 'rnrepo', 'slow builds', 'build times', 'prebuilt artifacts', 'prebuilt libraries', '@rnrepo/expo-config-plugin', '@rnrepo/build-tools', 'prebuilds-plugin', 'rnrepo.config.json', 'DISABLE_RNREPO', 'packages.rnrepo.org', 'Maven prebuild', 'CocoaPods prebuild', 'xcframework prebuild', 'prebuild AAR', 'build from source', 'native compilation slow', 'Gradle plugin slow', 'pod install slow', 'CI build times'.

- Skill: `software-mansion-labs/rnrepo` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add software-mansion-labs/rnrepo`
- Raw SKILL.md: https://api.skillmd.com/api/skills/software-mansion-labs/rnrepo/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- License: MIT
- Author: software-mansion-labs (https://skillmd.com/u/software-mansion-labs)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/software-mansion-labs/rnrepo

---


# RNRepo

Software Mansion's infrastructure for pre-building and distributing React Native library artifacts, reducing native build times by up to **2×** with zero infrastructure changes.

Read the relevant reference for the topic at hand. All references are in `references/`.

## Key facts

- **Beta, New Architecture only.** Works with React Native latest patches of 0.77, 0.78, 0.79 and all versions above 0.80.0.
- **How it works:** A Gradle plugin (Android) and CocoaPods plugin (iOS) intercept the build and substitute libraries with prebuilt artifacts from `packages.rnrepo.org`. Falls back to source if a prebuild is unavailable.
- **Expo CNG:** Use `@rnrepo/expo-config-plugin` — it configures both Android and iOS automatically.
- **Standard RN:** Install `@rnrepo/build-tools` and edit `android/build.gradle`, `android/app/build.gradle`, and `ios/Podfile` manually.
- **Opt out per library:** Add a `rnrepo.config.json` with a `denyList` at the project root. Required for libraries with **native patches** (Objective-C/Java/Kotlin). JS-only patches do NOT require opting out.
- **Opt out entirely:** Set `DISABLE_RNREPO=1` environment variable before the build command.

## References

| File | When to read |
|------|-------------|
| `references/installation.md` | Setting up RNRepo for the first time — Expo CNG, standard React Native, Android Gradle, iOS CocoaPods |
| `references/configuration.md` | Opting out specific libraries (denyList), disabling the plugin, Fingerprint config, GPG verification |
| `references/troubleshooting.md` | Build failures, C++ debug/release mismatch, duplicate `.so` files, Xcode version issues, empty repository list, verifying the plugin works |

