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.