System Design - leotm/react-native-template-new-architecture GitHub Wiki
plus(+): multi-threaded, strikethrough: deprecated
- (non)functional requirements
- users, team, time, budget
- OSS / priv
- perf tradeoffs, data extremities
- platforms
- Android / iOS
- macOS / Windows / visionOS
- tvOS / Web / (Skia)
- Android TV / horizonOS / VegaOS
- @lavamoat/allow-scripts(+can-i-ignore-scripts,+bins)
- Yarn 4 / pnpm / bun / npm + (workspaces) + (Turborepo)
- TypeScript, RN / Ignite / Nx / Expo
- RN 0.83 (React 19.2)
- Hermes V1 / Hermes / (JSC) / (V8)
- New arch / (old arch)
- Nitro / Turbo
- Metro / (Re.Pack) / (eegeunhyeok/rn-esbuild)
- @lavamoat/rn-lockdown
- StrictMode > Profiler > App
- Storybook / Cosmos / Design Mode
- @react-navigation/native-stack+(static/dynamic), rn-reanimated(worklets)+, rn-screens+, rn-safe-area-context
- rn-gesture-handler+, rn-pager-view+, rn-edge-to-edge, rive-rn+, {rn-nitro,expo}-haptics
- ScrollView / FlatList / FlashList
- fetch+/Axios+, rn-keychain+/expo-secure-store+, rn-app-auth+/expo-auth-session+
- RTK(Query), redux-persist, rn-mmkv+ / Zustand, react-query / Zustand, apollo/urql
- WebSocket/socket.io-client/(gRPC) / rn-webRTCd+
- WatermelonDB / Realm / PouchDB / (SQLite)
- rn-fast-image+ / expo-image+
- {rn,expo}-video+(rn-video-cache)
- {rn,expo}-fs+
rn-i18n/ react-i18next / rn-localize / expo-localization- @rn-firebase / OneSignal, invertase/notifee / wix/rn-notifications
- @stripe/stripe-rn+ / rn-iap+
- Linking / Branch.io / AppsFlyer
- rn-vision-camera+
- langchain / TanStack/AI (Vercel AI SDK) / callstackincubator/ai+
- sentry-rn
- oblador/rn-perf / reassure / shopify/rn-perf
- GHA, BitRise / (fastlane), eslint, prettier, husky, jest, maestro / detox / appium, rn-owl / loki
- renovate / dependabot,
depcheck/ knip / dependency-cruiser, @lavamoat/git-safe-dependencies CodePush/ Expo EAS- GitHub Copilot / OpenAI Codex / Claude Code / Cursor
- decision records