Blog
Thoughts on software development, design, and technology.
Shipping Arabic-First React Native Apps: RTL Lessons from Two Production Launches
What I learned building Harf Media and Basra TV — two Arabic-first React Native apps — about RTL layouts, fonts, numerals, and the bugs that only show up in right-to-left.
50+ Releases Without a Manual Step: GitHub Actions + Expo EAS
The CI/CD setup I built for a production React Native app — EAS build profiles, GitHub Actions triggers, store submission, and the small decisions that kept 50+ releases boring.
RevenueCat and Stripe in the Same App: Drawing the Line Apple Cares About
How I combined in-app subscriptions (RevenueCat) and direct card payments (Stripe) in production React Native apps without tripping App Store review — and the decision rule that makes it simple.
Cutting React Native Startup Time: What Actually Moved the Needle
A field report from restructuring a production React Native app — which optimizations delivered real startup and runtime wins, which were noise, and how to measure the difference.
Building Real-Time Audio Collaboration in React Native: Lessons from Boombox
Three years building a musician collaboration app taught me where real-time audio in React Native gets hard: signaling, iOS audio sessions, sync, and uploads that survive bad networks.