React Native theorytheory 0/50 · 0%
Architecture · hard

48. Monorepo and code sharing with web

Sharing logic between a React Native app and a web dApp.

Many teams share a monorepo (e.g. with Turborepo or Nx) between a React Native app and a React web dApp, putting pure logic — token formatting, contract ABIs, validation, API clients — in shared packages imported by both.

// packages/core/src/format.ts
export function formatTokenAmount(raw: bigint, decimals: number, precision = 4): string {
  const divisor = 10n ** BigInt(decimals);
  const whole = raw / divisor;
  const frac = raw % divisor;
  const fracStr = frac.toString().padStart(decimals, "0").slice(0, precision);
  return `${whole}.${fracStr}`;
}

UI components themselves usually aren't shared directly (View/Text vs. div/span differ), but hooks that wrap pure logic (e.g. `useTokenBalance`) can be shared if they avoid platform-specific imports.

Check your understanding

  1. 1. What kind of code is most shareable between RN and web?

  2. 2. Why don't UI components usually share directly between RN and web?

  3. 3. What tools are commonly used to manage such monorepos?