A production-ready React Native boilerplate with modern architecture and comprehensive UI components. Built with TypeScript, Redux Toolkit, NativeWind, and React Navigation.
- π§© Rich UI Components - 13+ pre-built components (Button, Input, Avatar, Badge, Checkbox, Switch, etc.)
- π Internationalization - Multi-language support with react-i18next (English, Vietnamese)
- π¨ Theme System - Dark/Light mode with automatic detection and 100+ color tokens
- π± Type-safe Navigation - React Navigation 7 with TypeScript integration
- πΎ MMKV Storage - High-performance storage (10x faster than AsyncStorage)
- π― Form Validation - Zod schemas with TypeScript integration
- π Redux Toolkit - State management with persistence
- π Animations - Smooth animations with Reanimated 3
- π οΈ Developer Tools - ESLint, TypeScript, path aliases, custom hooks
13+ Pre-built Components with Variants:
AppButton
- Multiple variants (primary, secondary, outline, ghost)AppInput
- Text input with validation and iconsAppText
- Typography with i18n support and variantsAvatar
- User avatars with fallbacksBadge
- Status indicators and labelsCheckbox
- Animated checkboxes with custom stylingChip
- Tags and filtersIcon
- Lucide icons integrationMenuList
- Navigation and action listsProgressBar
- Animated progress indicatorsSelect
- Dropdown selectionsSlider
- Range inputsSwitch
- Toggle controls with animations
- Multi-language support with react-i18next
- Automatic language detection from device settings
- Built-in translations for English and Vietnamese
- Easy to extend - just add new locale files
- Component integration - AppText automatically translates strings
- Dark/Light mode with system preference detection
- 100+ color tokens with semantic naming
- NativeWind 4 - Tailwind CSS for React Native
- Typography system with Source Sans Pro font
- Class Variance Authority for component variants
- Node.js 18+
- React Native development environment
- Yarn 4.9.1+
# Clone and install
git clone <your-repo-url>
cd react-native-boilerplate
yarn install
# iOS setup
cd ios && bundle install && bundle exec pod install && cd ..
# Start development
yarn start
yarn android # or yarn ios
src/
βββ components/
β βββ ui/ # 13+ UI components
β βββ auth/ # Auth-specific components
β βββ helpers/ # Helper components
βββ config/
β βββ colors.ts # Theme colors
β βββ i18n.ts # Internationalization
β βββ locales/ # Translation files
βββ hooks/ # Custom React hooks
βββ navigation/ # Type-safe navigation
βββ screens/ # Screen components
βββ services/ # API services
βββ store/ # Redux store + slices
βββ types/ # TypeScript definitions
βββ utils/ # Helper functions
βββ validations/ # Zod schemas
Key Features:
- Modular component architecture
- Type-safe navigation with React Navigation 7
- Redux Toolkit with MMKV persistence
- Comprehensive validation with Zod
- Multi-language support with i18next
import { AppButton, AppInput, AppText, Badge } from '@/components/ui';
// Button with variants
<AppButton variant="primary" size="lg">
Primary Button
</AppButton>
// Input with validation
<AppInput
label="Email"
placeholder="Enter email"
value={email}
onChangeText={setEmail}
errorText={errors.email}
/>
// Text with i18n support
<AppText variant="heading1">WELCOME_MESSAGE</AppText>
// Badge with status
<Badge variant="success">Active</Badge>
import { useColors } from '@/hooks/useColors';
const MyComponent = () => {
const colors = useColors(); // Auto theme-aware
return (
<View style={{ backgroundColor: colors.background }}>
<Text style={{ color: colors.primary }}>Themed content</Text>
</View>
);
};
import { useTranslation } from 'react-i18next';
import { changeLanguage } from '@/config/i18n';
const LanguageSelector = () => {
const { t } = useTranslation();
return (
<View>
<Text>{t('SELECT_LANGUAGE')}</Text>
<AppButton onPress={() => changeLanguage('vi')}>
TiαΊΏng Viα»t
</AppButton>
</View>
);
};
import { z } from 'zod';
import { loginFormSchema } from '@/validations/common';
const LoginForm = () => {
const handleSubmit = (data: unknown) => {
const result = loginFormSchema.safeParse(data);
if (result.success) {
// Data is validated and typed
login(result.data);
}
};
};
yarn start # Start Metro bundler
yarn android # Run on Android
yarn ios # Run on iOS
yarn generate-theme # Generate theme files
Core: React Native 0.80, TypeScript 5.0, React 19.1 State: Redux Toolkit, MMKV Storage, Redux Persist Navigation: React Navigation 7 (Stack + Tabs) Styling: NativeWind 4, Tailwind CSS, Class Variance Authority UI: Lucide Icons, React Native SVG, Reanimated 3 i18n: react-i18next, react-native-localize Validation: Zod schemas Tools: ESLint, Babel, Metro
useColors()
- Theme-aware color accessuseInsets()
- Safe area insets managementuseAppState()
- App foreground/background stateuseAsyncStorage()
- MMKV storage with React state syncuseDebounce()
- Value debouncing for search/input
MIT License - see LICENSE file for details.
Ready to build something amazing? Start customizing this boilerplate for your next project!