react-native-architecture — React Native skill for Expo
A skill for Claude Code, Codex and Cursor that hands your agent project layout, navigation, native modules and offline sync patterns for React Native on Expo.
/plugin marketplace add wshobson/agents
/plugin install frontend-mobile-development@claude-code-workflowsWhat react-native-architecture does
The skill loads ready-made patterns for React Native work into your agent's context. Author is Seth Hobson, repo is wshobson/agents, MIT license.
Inside you get a src/ layout with Expo Router route groups: (auth), (tabs), and a root _layout.tsx. A table compares Expo against bare React Native on setup complexity, native modules, OTA updates and build service. Quick start covers create-expo-app, plus installing expo-router, expo-secure-store, expo-haptics and @react-native-async-storage/async-storage.
Then the rules. Use Expo, FlashList over FlatList, memoize components, Reanimated for animations, test on real devices. Don't inline styles, don't fetch in render, don't keep secrets in code, don't skip error boundaries.
Longer worked examples live in references/details.md, read when the navigation tier above is not enough. On an Expo Router project this saves setup time. On bare React Native the value drops: half the advice about EAS Build and config plugins does not apply.
What it helps with
- Starting a new React Native or Expo project and needing a folder layout
- Complex navigation: route groups, tabs, modals
- Wiring native modules and platform APIs
- Building an offline-first app with data sync
- Performance drops on long lists and animations
Example prompts for the agent
- Install the skill from the plugin marketplace or via `npx skills add`
- Describe the task: project structure, navigation, a native module, offline sync
- For edge cases, ask the agent to open `references/details.md`
How to install react-native-architecture
1Plugin marketplace
/plugin marketplace add wshobson/agents/plugin install frontend-mobile-development@claude-code-workflowsThis installs the whole frontend-mobile-development plugin with all its skills
2Skills CLI (Vercel)
npx skills add wshobson/agents --skill react-native-architecture -a claude-code3Manually: put the files in place
~/.claude/skills/react-native-architecture/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/react-native-architecture/
1Skills CLI (Vercel)
npx skills add wshobson/agents --skill react-native-architecture -a codex2Manually: put the files in place
.agents/skills/react-native-architecture/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add wshobson/agents --skill react-native-architecture -a cursor2Manually: put the files in place
.cursor/skills/react-native-architecture/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install wshobson/agents react-native-architecture2Manually: put the files in place
.github/skills/react-native-architecture/SKILL.mdPlatform CLI
gemini skills install https://github.com/wshobson/agents --path plugins/frontend-mobile-development/skills/react-native-architectureManually: put the files in place
.devin/skills/react-native-architecture/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
From the same set213
The whole set →Similar
Questions about react-native-architecture
What does the react-native-architecture skill do?
It gives the agent React Native on Expo patterns: a src/ layout, Expo Router routes, an Expo vs bare RN comparison, and rules for lists, animations and error handling.
How do I install react-native-architecture in Claude Code?
Via the marketplace: /plugin marketplace add wshobson/agents, then /plugin install frontend-mobile-development@claude-code-workflows. Or run npx skills add wshobson/agents --skill react-native-architecture -a claude-code.
Does the skill work in Cursor and Codex?
Yes. For Cursor run npx skills add wshobson/agents --skill react-native-architecture -a cursor, the file lands in .cursor/skills/react-native-architecture/SKILL.md. For Codex use the same npx skills add with -a codex.
Will it help a project without Expo?
Partly. The EAS Build, config plugin and OTA advice assumes Expo. The general rules on lists, memoization and error boundaries still apply to bare React Native.
Source text
SKILL.md · MIT
---
name: react-native-architecture
description: Build production React Native apps with Expo, navigation, native modules, offline sync, and cross-platform patterns. Use when developing mobile apps, implementing native integrations, or architecting React Native projects.
---
# 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
| Feature | Expo | Bare RN |
| ------------------ | -------------- | -------------- |
| Setup complexity | Low | High |
| Native modules | EAS Build | Manual linking |
| OTA updates | Built-in | Manual setup |
| Build service | EAS | Custom CI |
| Custom native code | Config plugins | Direct access |
## Quick Start
```bash
# 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
```
```typescript
// 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
© Seth Hobson · MIT · wshobson/agents