Mobile Development 18 min read

Decentralized React Native Architecture Practice at Shopee: A Three-Year Evolution

Over three years, Shopee evolved its React Native architecture from a single‑bundle, centralized model to a fully decentralized system where each team independently develops, builds, and releases code, using an isolated JavaScript runtime and a self‑built Code Push Platform that manages permissions, incremental updates, grayscale releases, and migration of legacy plugins without disrupting ongoing business.

Shopee Tech Team
Shopee Tech Team
Shopee Tech Team
Decentralized React Native Architecture Practice at Shopee: A Three-Year Evolution

This article introduces Shopee's decentralized React Native (RN) architecture and the self-developed Code Push Platform (CPP) system. As Shopee's business grew rapidly, the RN codebase expanded, leading to issues such as oversized build artifacts, lengthy deployment times, and dependency conflicts across teams.

The development history progressed through four phases: single bundle centralized development, single bundle multi-business group development, multi-bundle centralized release, and multi-bundle decentralized release. The final phase enables each team to independently develop, build, and deploy their business code.

The decentralized RN architecture comprises four key aspects: independent JS runtime (multiple JSContext), independent development workflow, independent build process, and independent release process. The independent JS runtime is the core feature that isolates each plugin's execution environment, preventing variable and dependency conflicts between business modules.

The CPP system provides multi-team permission control, bundle lifecycle management (client version control, grayscale release, rollback), and system efficiency improvements including incremental differential updates, multi-scenario entry volume optimization, and integrated multi-environment support.

For legacy application migration, the article addresses logical coupling and component coupling challenges between plugins, proposing solutions such as joint publishing and nested rendering. A progressive migration strategy allows gradual transition without blocking ongoing business iterations.

mobile developmentSystem ArchitectureJavaScript runtimeReact NativeCross-Platform DevelopmentHot UpdateShopeeBundle ManagementCode PushDecentralized Architecture
Shopee Tech Team
Written by

Shopee Tech Team

How to innovate and solve technical challenges in diverse, complex overseas scenarios? The Shopee Tech Team will explore cutting‑edge technology concepts and applications with you.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.