Skip to content

Expo migration

Move a React Native app to Expo without blocking releases

I move legacy React Native apps to Expo while the product keeps shipping. Your team ends up with a build and release pipeline it controls.

When to migrate

01

Upgrades are scary

Every React Native or store SDK update turns into a project of its own.

02

Builds break

iOS and Android builds fail for unclear reasons, and few people know how to fix them.

03

Abandoned native libraries

Dependencies are no longer maintained and block every upgrade.

04

The migration keeps slipping

Moving to Expo has been planned for months, and the right moment never comes.

What I secure during a migration

Native surface
Dependencies, permissions, config plugins, prebuild, and modules that can block Expo.
You get a compatibility map and clear replacement or fallback options.
EAS and QA deployments
EAS Build, Submit, Update, channels, CI, and QA distribution.
You end up with automated EAS builds, test channels and OTA updates your team can trigger on its own.
Tailored choices
Trade-offs matched to your stack, store constraints, and product cadence.
We pick the useful Expo options together instead of a generic workflow.
Team ownership
Decisions, playbooks, and trade-offs are written for the internal team.
The migration ends with a workflow your team can run without me.

How a migration runs

  1. map

    Understand the existing app

    Code, native dependencies, CI and critical flows reviewed before changing anything.

    Priorities and treatment order

  2. migrate

    Modernise without blocking

    Expo migration when it serves the need, incompatible libraries replaced, builds secured.

    An app that builds cleanly

  3. release

    Ship for real

    Regular test builds, flows checked on iOS and Android, store release.

    A proven release path

  4. hand over

    Leave the team in control

    Commands, decisions and fallback options documented for maintenance.

    A team ready for the next releases

What I delivered

CAMPING-CAR PARK

03.2024 – 09.2025

React Native · mobile lead

Expo · CI/CD · maps

context ›
Booking app in production, built on an ageing React Native codebase.
action ›
Migration to Expo: unmaintained libraries replaced, build and release pipeline configured. Then a redesign in 2025, booking and maps, with the product and back-end teams.
result ›
An up-to-date Expo codebase, more reliable releases and a team supported over time.

MOBIAPPS

10.2025

React Native · Expo migration

Expo · config plugins

context ›
Legacy React Native app to modernise.
action ›
Migration to Expo: native configuration, Expo plugins, dependencies and React Navigation.

They talk about it

#01

“We had been dragging this Expo migration for more than a year. Simon reassured us, delivered it in two weeks, and we were able to publish a clean version afterwards.”

Matthieu

#02

“Simon migrated three of our React Native apps to Expo after more than 9 years of maintenance. The migration went smoothly, and we are already seeing the benefits: much faster upgrades and finally reliable builds.”

Romuald

#03

“Our mobile codebase had become too complex: too many special cases, too many dependencies, and not much certainty left. Simon helped us regain control and put a clear structure back in place.”

Antoine

Frequent questions

How long does an Expo migration take?

It depends on the native dependencies, the CI and the release setup. A focused migration can take two weeks; several older apps take longer. The initial review estimates the scope before any change.

Do releases have to stop during the migration?

No. The goal is to migrate while the product keeps moving, then prove the new release path on a version the team can inspect.

Can you stay after the migration?

Yes. I can keep supporting the team on new features, releases and technical follow-up.

Do you work remotely?

Yes, remotely from Nantes, with teams in France and abroad.

Contact

I enjoy joining an existing product, understanding its constraints and moving it forward with the team in place. If your web or mobile app needs an extra pair of hands, I would be glad to talk.