Blog

Current series

All series
17 parts · Ongoing · next part 12 OctIn progress

React Native Module Federation

Build a federated React Native app from scratch with Module Federation and Re.Pack: runtime remotes, the shared-singleton contract, and a host shell that owns navigation.

16 of 17 publishedStart with part 1Next part · 12 Oct
An app running from copies built into it while one of its supply lines fails

Fallback for federated remotes: the copy in the binary and the net in the session

The CDN goes down and the app still starts, from a copy of each remote built into the binary. In a CDN launch, a remote that fails to load drops to its own copy while the other stays on the CDN, and Try again finally retries.

Two app versions receiving their own remote versions from one CDN while a map line flips

CDN delivery: the version map, the resolver, and the live flip

Every launch, the app asks the CDN which remote versions it may run. Then an operator ships a new one to an installed app with one directory and one line of JSON, and rolls it back the same way. Plus what Apple and Google permit, quoted from the current texts.

Three supply lines feeding one federated app: a dev server, a registry and a CDN

The production build and the three modes of a federated React Native app

The remotes leave the dev server: built for production, signed at build time and served from a CDN that is a directory and a port. The registry sits in the middle, and one table says which changes still cost an app-store release.

A federated remote reaching a native screen through the host's hatch and getting a result back

shell.navigateTo: native screens from a federated remote in React Native

A remote ships JavaScript only, so the host lends it a native screen through one promise: a routing table, a TurboModule, and a Quick Battle in SwiftUI and Compose built so every exit settles the promise.

A large dial standing on the ground with a pipe running from it into each of three flat panels, every panel carrying a smaller dial of its own; two of the small needles rest upright and the third leans into a red arc

Accessibility testing across federated remotes in React Native

A shared testing package gives every remote the same WCAG bar: contrast, touch targets and status semantics checked in the packages that own them, each team's own screens checked in its own suite, and a failing test that found a button nobody could measure.

One design-system palette feeding three federated app panels

The design system as a federated singleton in React Native

Three federated apps carry three copies of the same greys until a design-system package moves to the seam: gluestack-ui components and NativeWind under Re.Pack, one shared singleton, and one theme toggle that re-themes every remote at once.

Two backends feeding one shared client cache across federated modules

Two backends, one client? RTK Query vs Apollo in React Native

The same PokéAPI data arrives over REST and GraphQL through one RTK Query slice, one tag invalidates across both, and the honest question is when Apollo's normalised cache is worth two caches during the transition.

The same federated app wired to two different state stacks

State stacks under federation: the same React Native app built twice

TanStack Query and Zustand rebuild the app Redux Toolkit and RTK Query just built; both work, and what separates them is what happens when independent teams stop coordinating.

A federated remote adding its own slice to a shared store while another remote reaches across to it

Client state across the seam: remotes that bring their own slices in React Native

A remote injects the slice it alone owns into the shared store, the contract carries the one action that crosses, and a write arrives as a prop; dispatch before the slice exists and the add vanishes in silence.

A federated app drawn as territories owned by different teams, joined by thin shared rails and one small central shell

Who owns what: boundaries, teams and coupling in a federated React Native app

Who owns a boundary, a component, a data definition? Five tests for cutting a federated React Native app along team lines, and what moves each answer.

A host app holding one shared store that two separately shipped features fill with live API data

One shared store: server state across federated remotes in React Native

A remote and an installed package inject their endpoints into one host store and share one cache; get the sharing wrong and the screen hangs on a spinner that never resolves.

RTK Query tags vs TanStack Query keys

Tags vs query keys: a small API difference that changes how teams coordinate

RTK Query tags and TanStack Query keys look interchangeable in single-team code. At multi-team scale they change what fails when teams drift out of sync.

Load more posts