Tech
React Native without a leaky native bridge
Omar Farouk · 2025-10-09 · 6 min
Resources
Most mobile pain is not JavaScript. It is an undocumented camera module and a bridge that grew by accident. We inventory native surface area before we add a screen, then we keep the JS side boring on purpose.
A leaky bridge shows up as a freeze you cannot reproduce on the web team's Mac. Native code needs an owner who can compile it on Monday, not a ticket that says 'ask iOS'.
Keep JS boring
Business rules stay in TypeScript. Native modules stay thin: camera, biometrics, push, background location. Each module has a version, a changelog, and a fixture app that proves it still builds.
We do not add a native dependency because a blog post was exciting. We add it because the product cannot ship without that capability on both platforms.
Upgrade on a schedule
React Native upgrades are cheaper when they are monthly, not annual. We budget a slice of every sprint for the upgrade treadmill. Skipping two versions is how you buy a rewrite.
The bridge is a product boundary. Treat it like one, and the rest of the app can move at JavaScript speed.
Related articles
Tech
Kubernetes without the theatre
The smallest cluster that still gives us rollbacks, secrets, and sleep.
Karim Nasser · 2025-09-02 · 6 min
Read articleTech
Preview apps that stakeholders actually click
GitHub Actions, ephemeral URLs, and the review comment that replaces a meeting.
Karim Nasser · 2025-11-18 · 6 min
Read articleTech
App Router seams that keep a Next.js app honest
Server components, cached reads, and the boundaries we refuse to blur.
Omar Farouk · 2025-12-11 · 6 min
Read article