Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
wshobson avatar

React Native Architecture

  • 11.9k installs
  • 38.3k repo stars
  • Updated July 22, 2026
  • wshobson/agents

Production-ready React Native and Expo architectural patterns including project structure, navigation, state management, native modules, and offline-first design.

About

This skill provides production-ready patterns for React Native development using Expo, covering project structure, navigation with Expo Router, state management, native module integration, and offline-first architecture. Developers use it when starting new React Native or Expo projects, implementing complex navigation, integrating native APIs, or optimizing performance. Key workflows include setting up Expo projects with TypeScript, organizing components and services, implementing tab and auth navigation stacks, choosing between Expo and bare React Native, and following performance best practices like memoization and FlashList for long lists.

  • Expo Router file-based navigation with layout compositing for tabs and auth groups
  • Project structure pattern with separate folders for components, hooks, services, stores, and types
  • Comparison table: Expo (low setup, EAS Build, OTA updates) vs Bare React Native (high setup, custom CI, direct native ac
  • Performance best practices: memoize components, use FlashList over FlatList, Reanimated for 60fps animations
  • Security and platform considerations: avoid inline styles, use environment variables for secrets, test on real devices

React Native Architecture by the numbers

  • 11,935 all-time installs (skills.sh)
  • +238 installs in the week ending Jul 28, 2026 (Skillselion tracking)
  • Ranked #16 of 1,048 Mobile Development skills by installs in the Skillselion catalog
  • Security screen: LOW risk (skills.sh audit)
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

react-native-architecture capabilities & compatibility

Capabilities
design project structure with expo router file b · implement auth and tab navigation patterns with · integrate native modules and platform apis · optimize performance with memoization and flashl · handle offline first architecture and state mana
Works with
github
Use cases
frontend · web design
Platforms
macOS · Windows · Linux
Runs
Local or remote
Pricing
Freemium
From the docs

What react-native-architecture says it does

Production-ready patterns for React Native development with Expo, including navigation, state management, native modules, and offline-first architecture.
skill description
npx skills add https://github.com/wshobson/agents --skill react-native-architecture

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs11.9k
repo stars38.3k
Security audit3 / 3 scanners passed
Last updatedJuly 22, 2026
Repositorywshobson/agents

What it does

Structure and architect production React Native apps with Expo, navigation, native modules, and offline-first patterns.

Who is it for?

Mobile app developers, full-stack engineers building cross-platform apps, teams adopting Expo for faster iteration.

Skip if: Web-only development, native iOS/Swift development, low-level systems programming.

When should I use this skill?

Starting a new React Native or Expo project, implementing complex navigation patterns, integrating native modules, building offline-first applications, or optimizing React Native performance.

What you get

Developers ship well-structured, performant React Native apps with proper navigation, native integrations, and cross-platform consistency.

  • Tab navigation layout
  • Theme hook integration
  • Dynamic route patterns

By the numbers

  • Covers file-based routing with Expo Router through Stack and Tab navigators
  • Includes comparison of Expo (low setup, OTA) vs bare React Native (high setup, custom CI)
  • Provides 5 do's and 5 don'ts best practice guidelines

Files

SKILL.mdMarkdownGitHub ↗

React Native Architecture

Production-ready patterns for React Native development with Expo, including navigation, state management, native modules, and offline-first architecture.

When to Use This Skill

  • Starting a new React Native or Expo project
  • Implementing complex navigation patterns
  • Integrating native modules and platform APIs
  • Building offline-first mobile applications
  • Optimizing React Native performance
  • Setting up CI/CD for mobile releases

Core Concepts

1. Project Structure

src/
├── app/                    # Expo Router screens
│   ├── (auth)/            # Auth group
│   ├── (tabs)/            # Tab navigation
│   └── _layout.tsx        # Root layout
├── components/
│   ├── ui/                # Reusable UI components
│   └── features/          # Feature-specific components
├── hooks/                 # Custom hooks
├── services/              # API and native services
├── stores/                # State management
├── utils/                 # Utilities
└── types/                 # TypeScript types

2. Expo vs Bare React Native

FeatureExpoBare RN
Setup complexityLowHigh
Native modulesEAS BuildManual linking
OTA updatesBuilt-inManual setup
Build serviceEASCustom CI
Custom native codeConfig pluginsDirect access

Quick Start

# Create new Expo project
npx create-expo-app@latest my-app -t expo-template-blank-typescript

# Install essential dependencies
npx expo install expo-router expo-status-bar react-native-safe-area-context
npx expo install @react-native-async-storage/async-storage
npx expo install expo-secure-store expo-haptics
// app/_layout.tsx
import { Stack } from 'expo-router'
import { ThemeProvider } from '@/providers/ThemeProvider'
import { QueryProvider } from '@/providers/QueryProvider'

export default function RootLayout() {
  return (
    <QueryProvider>
      <ThemeProvider>
        <Stack screenOptions={{ headerShown: false }}>
          <Stack.Screen name="(tabs)" />
          <Stack.Screen name="(auth)" />
          <Stack.Screen name="modal" options={{ presentation: 'modal' }} />
        </Stack>
      </ThemeProvider>
    </QueryProvider>
  )
}

Detailed patterns and worked examples

Detailed pattern documentation lives in references/details.md. Read that file when the navigation tier above is insufficient.

Best Practices

Do's

  • Use Expo - Faster development, OTA updates, managed native code
  • FlashList over FlatList - Better performance for long lists
  • Memoize components - Prevent unnecessary re-renders
  • Use Reanimated - 60fps animations on native thread
  • Test on real devices - Simulators miss real-world issues

Don'ts

  • Don't inline styles - Use StyleSheet.create for performance
  • Don't fetch in render - Use useEffect or React Query
  • Don't ignore platform differences - Test on both iOS and Android
  • Don't store secrets in code - Use environment variables
  • Don't skip error boundaries - Mobile crashes are unforgiving

Related skills

How it compares

Pick react-native-architecture over generic React skills when the stack is Expo Router with file-based mobile navigation and theming.

FAQ

Should I use Expo or bare React Native?

Use Expo for faster development, OTA updates, and managed native code via EAS Build. Use bare React Native only if you need direct native access or custom CI/CD that Expo config plugins don't support.

How do I implement navigation in React Native with Expo?

Use Expo Router with file-based routing. Organize screens in app/ with groups like (auth), (tabs), and _layout.tsx files to define Stack or Tab navigators with proper nesting.

What are the key performance optimizations for React Native?

Memoize components to prevent re-renders, use FlashList instead of FlatList for long lists, use Reanimated for 60fps animations on the native thread, and use StyleSheet.create instead of inline styles.

Is React Native Architecture safe to install?

skills.sh reports 3 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Mobile Developmentfrontendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.