Skip to content
Back

Freelance Expo developer

Expo has become the serious way to build React Native, and it is my daily tool: apps in production, EAS builds, over-the-air updates, and native modules when the ecosystem is not enough.

Expo, down to native

The strength of Expo is never opening Xcode or Android Studio again. Its limit is the day you need an API the ecosystem does not expose. That is where I come in: I write Expo modules in Swift and Kotlin, publish some as open source on npm, and unified complete native SDKs into one cross-platform Expo module for MWM.

EAS, from build to store

EAS builds, signing, profiles, store submission, OTA updates and runtime-version management: I set up the whole chain, with the rule that matters, knowing what can ship over the air and what requires a store build. Your team keeps a pipeline it understands.

What I have shipped with Expo

At MWM, a native module on the Expo Modules API unifying two iOS and Android SDKs behind a single TypeScript API, installed through config plugins without opening Xcode. At Epsor, an Expo app inside a Turborepo monorepo, with a design system shared through React Native Web and Solito navigation. At Mistral AI, Le Chat on an Expo base, with native Swift and Kotlin modules and file opening through Quick Look. At Snoop, the iOS and Android apps of a social network, from scratch.

OTA or store build: the rule

An OTA update carries the JavaScript and the assets, nothing else. A native module added, a config plugin changed, a permission, an Expo SDK upgrade: each of these changes the runtime version and requires a store build. I set that rule in the pipeline from day one, with one channel per environment, so an OTA never breaks an installed app.

What I do

  • Build an Expo app from scratch, with Expo Router and EAS.
  • Migrate a bare React Native app to Expo.
  • Write native Expo Modules in Swift and Kotlin.
  • Set up EAS Build, Submit and Update, with CI/CD.
  • Unblock a team stuck on a native problem.

Frequent questions

Expo Go or a development build?

A development build, from day one. Expo Go only loads the native code it ships with: the first native module, the first config plugin, and it is no longer enough. A dev build is your app, with your native code, and hot reload stays exactly the same.

Expo or bare React Native?

Expo, unless there is a precise, documented reason not to. Prebuilds and config plugins now cover almost every case that used to justify bare, and Expo Modules lets you write the missing native code without leaving the ecosystem.

Can an Expo app use native code?

Yes, without restriction. Expo Modules is precisely a modern API for writing clean Swift and Kotlin. It is a large part of my work: native SDKs, iOS Quick Look, modules published on npm.

How long does a migration to Expo take?

For a reasonably sized app, a few days to a few weeks depending on how many native dependencies need replacing or wrapping. I start with a dependency inventory, which yields an honest estimate before writing a single line.

Get in touch

Got a project in mind?

Guaranteed reply within the hour, plus a free thirty-minute video audit.

Email meMaltLinkedIn

Emailcontact@magrin.fr

Phone+33 6 73 12 19 30

Based inParis, France · fully remote