Coming from the proposal here
Background
Expo’s expo-av library, which powers video playback in our app (such as video attachments and previews), was officially deprecated as of Expo SDK 52. The Expo team has confirmed that it will not be updated for SDK 54 and beyond.
We are currently upgrading to Expo SDK 53 (in the React Native 0.79 bump). This means we are one version away from breaking compatibility with expo-av. At present, we maintain two custom patches to keep expo-av functional, which adds engineering overhead and risk. As dependencies evolve, these patches will become increasingly brittle.
In contrast, Expo has introduced expo-video and expo-audio as actively maintained alternatives to expo-av. These libraries are modular, aligned with Expo’s strategic direction, and offer a cleaner path forward for maintaining audio and video functionality in our app.
Problem
When we rely on the deprecated expo-av library during SDK upgrades, it forces us to maintain fragile custom patches, which prevents us from upgrading confidently and increases long-term instability.
Solution
We propose migrating all usage of expo-av to the new libraries officially recommended by the Expo team:
- Verify feature parity and stability post-migration, ensuring no regressions in functionality.
- Evaluate the necessity of the two existing custom patches – Once confirmed to be obsolete following the migration, these patches will be safely removed.
- Replace expo-av video functionality with expo-video - This includes all video playback use cases such as previews and attachments.
- Migrate any remaining audio-only functionality to expo-audio - Ensures separation of concerns and compliance with modular design practices.
These steps will reduce technical debt, align us with the current Expo ecosystem, and eliminate a critical point of failure before it blocks future development. Migrating now enables us to retain control over the timeline and scope of this transition, rather than being forced into reactive fixes later
Coming from the proposal here
Background
Expo’s expo-av library, which powers video playback in our app (such as video attachments and previews), was officially deprecated as of Expo SDK 52. The Expo team has confirmed that it will not be updated for SDK 54 and beyond.
We are currently upgrading to Expo SDK 53 (in the React Native 0.79 bump). This means we are one version away from breaking compatibility with expo-av. At present, we maintain two custom patches to keep expo-av functional, which adds engineering overhead and risk. As dependencies evolve, these patches will become increasingly brittle.
In contrast, Expo has introduced expo-video and expo-audio as actively maintained alternatives to expo-av. These libraries are modular, aligned with Expo’s strategic direction, and offer a cleaner path forward for maintaining audio and video functionality in our app.
Problem
When we rely on the deprecated expo-av library during SDK upgrades, it forces us to maintain fragile custom patches, which prevents us from upgrading confidently and increases long-term instability.
Solution
We propose migrating all usage of expo-av to the new libraries officially recommended by the Expo team:
These steps will reduce technical debt, align us with the current Expo ecosystem, and eliminate a critical point of failure before it blocks future development. Migrating now enables us to retain control over the timeline and scope of this transition, rather than being forced into reactive fixes later