incident.io harnesses the power of native modules and CNG
Article Summary
Dan Kelly explores how incident.io shipped a production mobile app in months without hiring a single mobile engineer. Their secret? Leaning hard into Expo's 'golden path.'
incident.io (used by Miro, Vercel, and Linear) needed their first mobile app but faced the classic startup dilemma: hiring native engineers is expensive and slow. CTO Pete Hamilton chose React Native + Expo to turn their existing product engineers into a mobile team.
Key Takeaways
- iOS and Android directories are completely ephemeral, regenerated via config plugins
- Developers never install Xcode or Android Studio, just scan QR codes
- Shipped production app in months, six months ahead of native development timeline
- Built custom native module for Android critical notifications using Expo modules
- Expo Router enabled deep linking from push notifications with zero extra config
incident.io calculated ROI by adding up six months of revenue they'd have missed waiting for a native build.
About This Article
incident.io needed to send critical notifications to Android phones that bypass silent mode and Do Not Disturb settings. Existing React Native libraries couldn't do this.
The team built a custom native module using Expo's module tutorial and the npx create-expo-module command. This automatically generated the necessary bindings, so they didn't have to write native code manually.
incident.io got the feature they needed while spending only 2% of development time in native code. The rest of their work stayed in their main codebase.