NM Company
A portfolio and enquiry site for events firm NM Company
A visual portfolio and enquiry website for an event management and supplies firm — presenting a full...
Read itExpo · EAS · New Architecture
One codebase, both stores, and a release you can fix the same afternoon. We build React Native on Expo with EAS Build and over-the-air updates, tuned for the mid-range Android device your users actually own.
The case for React Native was never that cross-platform code is elegant. It is that a single team of five can own both apps, share types and validation with the web product, and push a fix to every installed device in minutes instead of waiting four days for app review. We build on Expo with EAS, on the New Architecture, and we tune against a mid-range Android handset rather than the newest iPhone — because that is the device your users in Indore and Coimbatore are actually holding. Cold start under 1.8 seconds on that device is the bar, and it is the bar we hold in CI.
Talk to a mobile engineerOn a mid-range Android device with Hermes bytecode precompiled. Not on a flagship, and not on wifi.
Between iOS and Android. The remaining 15% is platform idiom, and it should be — that is what makes it feel native.
EAS Update, from merge to installed handsets. Against roughly four days for a store review cycle.
Reanimated and Gesture Handler run animations on the UI thread, so they hold frame rate while JavaScript is busy.
React Native in 2026 is not the React Native people argue about on the internet. The New Architecture is the default, Expo is no longer the toy option, and the "just eject when you need something real" advice is four years out of date. Here is how we build.
We start every React Native project on Expo with the managed workflow and config plugins. When we need a native module that Expo does not ship, we write a config plugin or a local native module and keep the managed workflow — we do not eject to bare and inherit two native build systems to maintain by hand. In three years of building this way, the number of projects that genuinely required ejecting is zero.
Expo Router gives us file-based navigation with typed routes and deep links that work without a week of Android intent-filter archaeology. EAS Build produces signed binaries in CI without anyone owning a Mac, which matters more than it sounds when your only Mac is a laptop belonging to someone on leave.
EAS Update lets us ship a JavaScript-only fix to every installed device in minutes, bypassing app store review entirely. A bad copy change, a broken form validation, a wrong tax rate — fixed the same afternoon, not in four days after Apple looks at it. We use it aggressively for fixes, and we still ship a real store release on a fortnightly cadence, because OTA is not a licence to let the native binary rot. Anything touching a native module or a permission is a store release, no exceptions.
Fabric and TurboModules removed the asynchronous JSON bridge that used to sit between JavaScript and native code. What that buys you in practice is synchronous native calls, lazy module loading and a startup that is meaningfully faster — we hold a cold start under 1.8 seconds on a mid-range Android device, which is the device your Indian users actually have. Hermes is the engine, with bytecode precompiled at build time so there is no parse cost at launch. Animations and gestures go through Reanimated and Gesture Handler, which run on the UI thread and stay at 60 fps while JavaScript is busy.
Offline-first with a real local store and a reconciliation strategy, not an optimistic UI and a prayer, because Indian mobile connectivity is not a nice curve. Sentry with source maps and native crash symbolication, so a crash report is a stack trace rather than a hex address. Detox or Maestro end-to-end tests on the critical flows, running in CI on every pull request. And a release checklist that includes an actual mid-range Android device, in hand, not just an iPhone simulator on the engineer's desk.
| Choose React Native | Choose something else | |
|---|---|---|
| You already have a React web product | Yes. Types, validation schemas, API clients and a good deal of business logic are shared. This is the strongest single argument for it. | Nothing beats it on this axis. Flutter would mean maintaining the same logic twice, in two languages. |
| Heavy 3D, AR or real-time video | No. You will spend the project writing native modules and lose every advantage you came for. | Native Swift and Kotlin, or Unity for genuine 3D. Use the tool the platform intends for it. |
| Offline-first field or driver app | Yes, and we build this often. A real local database, a queued mutation log and per-entity conflict rules. | Also fine in Flutter. What matters is that offline is the architecture, not a sprint-nine feature — the framework is secondary. |
| Single platform, iOS only, premium feel | Hard to justify. The cross-platform saving is the point, and you have just given it up. | Native Swift and SwiftUI. Fewer layers, better platform idiom, and no bridge to reason about. |
| Team is Dart-first, no React anywhere | No reason to force it. The ecosystem advantage evaporates if nobody on the team lives in it. | Flutter. We build in it too, and we would rather you shipped in a stack your team can debug at 2am. |
| You need to fix production fast | Strong. EAS Update pushes a JavaScript fix to installed devices in minutes, with no store review. | Flutter can do OTA via similar tooling, but the story is less mature. Native cannot do it at all. |
Offline-first, barcode and QR scanning, ePOD capture with signature and photo, GPS breadcrumbs, and a sync that survives a basement warehouse.
eKYC flows, UPI intent and collect, biometric unlock, certificate pinning, and a security posture that survives an audit.
Catalogue, cart, checkout, order tracking and push that actually converts — with a product list that scrolls at 60fps on cheap hardware.
Where the app is the mobile half of a product you already run. Shared types, shared validation, one API, one team.
An old bare-workflow app on a dead React Native version, moved onto Expo and the New Architecture without a rewrite.
EAS Build in CI, signing, App Store and Play Console submission, review responses, staged rollout and crash triage.
Bytecode is compiled at build time, so there is no JavaScript parse cost at launch. This is most of the cold-start improvement.
Reanimated and Gesture Handler keep gestures and transitions at 60fps even while the JavaScript thread is doing real work.
EAS Update from merge to installed devices. A wrong tax rate is fixed before lunch instead of after a four-day review.
A local SQLite or WatermelonDB store, a queued mutation log, and an explicit conflict policy per entity. Not an optimistic UI and a prayer.
Sentry with source maps and native symbolication, so a crash report is a stack trace with a line number, not a hex address.
The real saving is not lines of code, it is that five engineers own both platforms rather than two separate squads drifting apart.
A Shopify storefront for a Surat ethnic-wear label — 200+ SKUs of lehengas, sarees and suits organised by type, colour,...
A fleet, ePOD and route-optimisation platform built offline-first for drivers in low-connectivity corridors — because th...
A Shopify storefront for a Surat watch and eyewear retailer — browsable by gender, brand, style and combo, with predicti...
If the answer is a ₹12,000 Android phone on a 4G connection that drops, that is the device we will build and benchmark against. Send us the brief and a senior mobile engineer will reply within one business day.
FAQ
Proof
NM Company
A visual portfolio and enquiry website for an event management and supplies firm — presenting a full...
Read itSwasthya Sarathi
A multi-service healthcare platform that helps people find hospitals, doctors, labs, medical stores,...
Read itMV Tech Education
A course-catalogue and admissions website for a Bihar vocational institute — leading with industrial...
Read itReact that renders on the server, ranks in Google and does not ship 300 KB of JavaScript t...
ExploreThe framework we have shipped more business systems on than any other. Laravel 12 with Oct...
ExploreNode is the right answer for real-time tiers, streaming and high-concurrency I/O — and the...
ExploreLet's talk react native development
A senior engineer reads every enquiry. You'll get a real answer — scope, risk and a number — within one business day.