How We Ship Updates to Our React Native Fintech App in Seconds using OTA Updates
Article Summary
Umair Ali from ZAR reveals how his fintech team ships bug fixes to production in minutes instead of waiting days for App Store review. Their secret? A battle-tested OTA update system that's changed everything about their release velocity.
ZAR migrated their fintech app from Flutter to React Native specifically to leverage OTA (Over-the-Air) updates via Expo EAS. This deep dive breaks down their complete production setup: how they handle critical vs non-critical updates, their CI/CD smart build system, and why they still don't auto-deploy to production despite having the capability.
Key Takeaways
- Non-critical updates download silently in background, apply on next cold start
- Critical updates show blocking overlay forcing immediate restart for security patches
- Smart Build CI automatically decides OTA vs full native build using fingerprint comparison
- Manual production gate after staging verification prevents cascading failures in fintech context
- Weekly store releases keep baseline fresh and OTA delta downloads small
ZAR achieved web-like deployment speed for their React Native fintech app while maintaining production safety through a split OTA strategy: automated staging deploys with manual production gates and a critical update system that forces immediate patches when security matters.
About This Article
ZAR's fintech app was stuck waiting 1-7 days for App Store review every time they needed to fix a bug. In financial software, bugs are expensive and users need security patches fast.
Umair Ali's team set up Expo EAS Update with a runtime version system. They used static numeric identifiers like '23' in production and auto-calculated fingerprints in staging. This way, over-the-air updates only went to compatible native builds.
ZAR could now push JavaScript changes directly to users without waiting for store review, matching web deployment speed. A critical index system handles the safety side: security patches trigger blocking overlays that force users to update, while minor fixes roll out silently in the background.