How to Gradually Migrate From React Native Community CLI to Expo

Featuring
Mike Grabowski
CEO & Founder
@
Callstack
Keith Kurak
Dev Success Engineer
@
Expo

Thinking about moving your React Native Community CLI app to Expo, but not sure how to do it without breaking things? This webinar is for you.

Join Mike Grabowski (Callstack) and Keith Kurak (Expo) for a developer-first walkthrough of how to incrementally adopt Expo. You’ll learn how to introduce Expo’s tooling and libraries into your existing RNC CLI app without a full rewrite, and why many teams are taking this path for better dev experience, native build tooling, and faster iteration.

What is Expo and why consider a framework?

Expo is a production-grade open-source framework built on top of React Native that offers a cohesive suite of tools, libraries, and services—such as Expo SDK, CLI, EAS Build, OTA updates, and config plugins—to simplify cross-platform app development. It abstracts common tasks like navigation, native-code upgrades, dependency management, and build pipelines, enabling developers to focus on app features rather than tooling.

At React Conf in 2024, the React Native team updated its guidance: "Using React Native frameworks, such as Expo, is now the recommended approach to create new apps". The rationale is simple: if you don't adopt an existing framework, you'd essentially end up building your own.

Why is Expo increasingly chosen by the community?

Modern capabilities for complex projects

Earlier concerns, such as Expo being “only for beginners”, have faded. Now with Expo Modules API, Custom Dev Clients, and config plugins, Expo supports sophisticated native integrations, high-performance needs (Fabric, TurboModules), and complex customization.

Streamlined native build and CI/CD workflows

Expo’s EAS Build offers cloud-based native builds, removing the need to manage local toolchains, Xcode or Android Studio. Teams also benefit from OTA updates to deliver JS fixes instantly between store releases.

Consistent, high-quality SDK components

The Expo SDK delivers well-maintained, curated native APIs (camera, notifications, sensors). It ensures API consistency and reduces dependency issues common in bare RN projects.

What you'll learn in this session

  • The specific advantages Expo brings to React Native apps in 2025
  • How to begin by integrating a single Expo module, then scale up
  • The right time to adopt Expo features like EAS Build, Updates, or Expo Router
  • What to avoid during the migration for maximum efficiency

Expect practical examples, adoption strategies, and clarity on why Expo is a compelling toolchain for React Native today.

Resources

Check out the resources mentioned during the webinar to explore the topic further:

Insights

Learn more about Expo

cover

Mar 26Live Stream

Expo UI with SwiftUI and Jetpack Compose in practice

Exploring Expo UI with SwiftUI and Jetpack Compose, including setup challenges, architecture tradeoffs, and real-world developer insights.

cover

Dec 9Podcast

From Hobby Tool to Default: Expo's Journey and the New App Awards

Jon Samp (Expo) discusses the framework's evolution since becoming the React Native default, the death of the "eject" mentality, and the launch of the Expo App Awards.

cover

Jan 2Podcast

Universal React Native Apps with DOM & React Server Components

Tune in to discussion with Evan Bacon, Expo Router's creator, about how DOM and React Server Components make creating React Native universal apps a breeze.

cover

Oct 11Podcast

Improving Developer Experience With Expo

In this episode, we dive into Expo's potential to reshape the future of React Native development and enhance the developer experience. Our guests are Jon Samp, Head of Product at Expo, and Cedric van Putten, a Software Engineer at Expo. Tune in to learn how Expo can help you build React Native apps faster and more efficiently.

cover

Jun 17Article

How to Make Mobile Payment in a React Native App With Stripe and Expo in 15 Minutes

Learn how to make your first React Native payment in a mobile app with Stripe and Expo. We provide a step-by-step guide.

cover

Mar 19Tutorial

The Hard Way vs. The React Native AI SDK Way: Stop Writing Custom Modules for Every Model

Learn how React Native AI uses a unified provider model to switch between cloud and on-device LLMs without rewriting application logic, enabling reliable AI experiences online and offline.

cover

Mar 12Tutorial

Build Smarter Apps: Tool Calling & AI Orchestration Explained

Learn how on-device models in React Native can call tools, interact with external APIs, and return structured outputs you can use directly in application logic.

cover

Mar 5Tutorial

MLC LLM + React Native: On-Device AI Without the Pain

Learn how to run third-party on-device LLMs in React Native using MLC LLM. Choose your models, run them efficiently across platforms, and keep a unified JavaScript API with React Native AI.

cover

Feb 24Tutorial

Intelligent Fallbacks with Apple Intelligence in React Native

Learn how to use Apple’s built-in Foundation Models in React Native apps, reduce memory usage, and enable fast, fully on-device AI with React Native AI Apple.

cover

Feb 10Tutorial

What Is the React Native AI SDK? A Complete Intro & Quickstart

Learn why on-device AI matters for React Native apps, how local LLMs behave offline, and what problems React Native AI is designed to solve from day one.

cover

Jan 29Tutorial

Implementing an Android TurboModule with Kotlin

Learn how to implement a React Native TurboModule on Android, from the TypeScript spec and Codegen to the Kotlin implementation and package registration.

cover

Jan 19Tutorial

Working with Different Threads in Swift TurboModules

Learn how JavaScript, native module, background, and main threads interact in React Native TurboModules, and how to use GCD queues to run async work safely in Swift.

cover

Jan 9Tutorial

How to Add Type-Safe Constants to Swift TurboModules

Learn how to expose typed, immutable constants from a Swift TurboModule using Codegen, and get full end-to-end type safety between native and JavaScript.

cover

Dec 30Tutorial

Adding Event Emitters to Your TurboModule in Swift

Learn how to emit native events from a Swift TurboModule and subscribe to them in JavaScript, including proper memory management and Codegen integration.

Writing a Swift TurboModule in React Native

Dec 22Tutorial

Writing Your First TurboModule in Swift

Learn how to build a fully working TurboModule in Swift, integrate it with Codegen, and bridge it through Objective‑C inside an Expo app.