Supported Platforms
iOS
iPhone and iPad with native iOS features
Android
Android phones and tablets with native features
Web
Works in any modern web browser
Desktop
Native desktop applications for macOS, Windows, and Linux
Technology Stack
New Expensify uses a modern cross-platform architecture:- Framework: React Native with React Native Web
- Language: TypeScript
- State Management: React Native Onyx (custom offline-first store)
- Navigation: React Navigation
- JavaScript Engine: Hermes (mobile)
Key Features Across Platforms
Offline-First Architecture
All platforms support full offline functionality:- Create and edit expenses without internet
- Optimistic updates with automatic sync
- Queue-based request handling
- Automatic conflict resolution
Real-Time Sync
Changes sync instantly across all devices:- WebSocket-based real-time updates via Pusher
- Optimistic UI updates
- Automatic retry on network reconnection
- Cross-device state synchronization
Receipt Management
Powerful receipt handling on all platforms:- Mobile: Camera capture with SmartScan OCR
- Desktop/Web: File upload and drag-and-drop
- Automatic data extraction
- Multi-receipt support
Learn more about Receipt Scanning on mobile devices.
Push Notifications
iOS
APNs integration via Airship
- Rich notifications with avatars
- Communication notifications (iOS 15+)
- Silent push for data sync
Android
FCM integration via Airship
- Rich notifications with images
- Background sync notifications
- Custom notification sounds
Platform-Specific Features
Mobile
| Feature | iOS | Android |
|---|---|---|
| Camera Receipt Scanning | ✓ | ✓ |
| Biometric Authentication | Face ID, Touch ID | Fingerprint, Face |
| Share Extensions | ✓ | ✓ |
| Live Activities | ✓ (iOS 16.1+) | - |
| Widgets | ✓ | ✓ |
| Offline Mode | ✓ | ✓ |
Desktop
| Feature | macOS | Windows | Linux |
|---|---|---|---|
| Native Menus | ✓ | ✓ | ✓ |
| Keyboard Shortcuts | ✓ | ✓ | ✓ |
| System Tray | ✓ | ✓ | ✓ |
| Auto-Update | ✓ | ✓ | ✓ |
| File System Access | ✓ | ✓ | ✓ |
HybridApp Architecture
Mobile applications include:- NewDot: Modern React Native experience
- OldDot: Legacy features not yet migrated
- Seamless Navigation: Automatic transitions between versions
- Shared Authentication: Single sign-on across both
Build System
Rock Build Management
New Expensify uses Rock for efficient native builds:- Remote Builds: Downloads pre-built artifacts from S3
- Local Fallback: Builds locally when needed
- Fingerprinting: Determines when rebuild is necessary
- Fast Setup: Reduces development environment complexity
Getting Started
Choose your platform to get started:iOS Setup
Set up iOS development environment
Android Setup
Set up Android development environment
Web Development
Start web development
Desktop Apps
Learn about desktop applications
Cross-Platform Development
Platform-Specific Code
Use platform extensions for platform-specific implementations:Platform Detection
Responsive Design
Performance Considerations
Mobile Performance
- Hermes JavaScript Engine: Optimized bytecode execution
- FlashList: Performant list rendering
- Image Optimization: Automatic thumbnail generation
- Lazy Loading: Code splitting for faster startup
Web Performance
- Code Splitting: Webpack-based chunking
- Service Workers: Offline caching
- Bundle Analysis: Size optimization
- Tree Shaking: Remove unused code
