React Native Fintech Starter
Opinionated React Native starter for building financial mobile applications. Includes biometric authentication, secure storage, certificate pinning, and CI/CD — the security and infrastructure groundwork that every fintech app needs.
Biometric authentication — Face ID, Touch ID, and Android Fingerprint
Secure encrypted storage — iOS Keychain and Android Keystore
Certificate pinning — Prevent MITM attacks on API communication
Jailbreak/root detection — Detect compromised devices
Screen capture prevention — Block screenshots on sensitive screens
Inactivity timeout — Auto-lock after configurable idle period
TypeScript in strict mode
React Navigation 6 with typed routes
Zustand for state management with encrypted persistence
API layer with Axios, interceptors, retry logic, and request queuing
Offline-first architecture with background sync
Push notifications via FCM (Android) and APNs (iOS)
Deep linking with Universal Links and App Links
OTA updates with CodePush
CI/CD with Fastlane and GitHub Actions
Unit tests with Jest
E2E tests with Detox
Snapshot tests for UI components
├── src/
│ ├── api/ # API client, interceptors, endpoints
│ ├── assets/ # Images, fonts, animations
│ ├── components/ # Shared UI components
│ │ ├── base/ # Base components (Button, Input, Card)
│ │ └── feedback/ # Loading, Error, Empty states
│ ├── config/ # Environment config, constants
│ ├── hooks/ # Custom hooks
│ ├── navigation/ # Navigation stack, types, linking
│ ├── screens/ # Screen components by feature
│ │ ├── auth/ # Login, biometric, PIN
│ │ ├── dashboard/ # Main dashboard
│ │ ├── transfers/ # Money transfer flows
│ │ └── settings/ # User settings, security
│ ├── services/ # Business logic services
│ │ ├── auth/ # Auth service, token management
│ │ ├── biometric/ # Biometric enrollment and verification
│ │ ├── secure-storage/ # Encrypted key-value storage
│ │ └── notifications/ # Push notification handling
│ ├── stores/ # Zustand stores
│ ├── theme/ # Design tokens, colors, spacing
│ ├── types/ # Global TypeScript types
│ └── utils/ # Pure utility functions
├── e2e/ # Detox E2E tests
├── __tests__/ # Jest unit tests
├── fastlane/ # Fastlane configuration
├── .github/workflows/ # CI/CD pipelines
├── android/
├── ios/
└── app.json
Node.js 18+
React Native CLI
Xcode 15+ (iOS)
Android Studio (Android)
git clone https://github.com/mj11rock/react-native-fintech-starter.git
cd react-native-fintech-starter
npm install
cp .env.example .env
# iOS
cd ios && pod install && cd ..
npm run ios
# Android
npm run android
Layer
Implementation
Purpose
Transport
Certificate pinning + TLS 1.3
Prevent MITM
Storage
Keychain / Keystore
Encrypt sensitive data at rest
Authentication
Biometric + PIN + JWT
Multi-factor user verification
Session
Inactivity timeout + background lock
Prevent unauthorized access
Device
Jailbreak detection
Block compromised environments
# iOS
fastlane ios beta # TestFlight
fastlane ios release # App Store
# Android
fastlane android beta # Internal testing
fastlane android release # Play Store
Environment
API
Push
Analytics
Development
Local / Mock
Disabled
Disabled
Staging
Staging API
FCM Sandbox
Debug
Production
Production API
FCM / APNs
Full
Decision
Choice
Rationale
State
Zustand
Lightweight, TypeScript-native, supports encrypted persistence
Navigation
React Navigation 6
Most mature, typed routes, deep linking built-in
Security
Custom security layer
Fintech compliance requires fine-grained control
API
Axios + interceptors
Token refresh, retry, request queuing for offline
Testing
Jest + Detox
Jest for speed, Detox for real device E2E
CI/CD
Fastlane + GH Actions
Industry standard for mobile, reproducible builds
Category
Technology
Framework
React Native 0.73+
Language
TypeScript (strict)
Navigation
React Navigation 6
State
Zustand
Security
react-native-keychain, ssl-pinning
Push
@react-native-firebase/messaging
Testing
Jest, Detox
CI/CD
Fastlane, GitHub Actions