Customers

incident.io

"With Expo we can get away with never installing Xcode or Android Studio. This is incredibly valuable for our team."

Industry

SaaS

Scale

Startup

Platform

iOS, Android

incident.io is a powerful incident management platform that streamlines processes for fixing and learning from incidents. Their customers include companies like Miro, HashiCorp, Vercel, Linear, and Netlify. When it came time to build a mobile app, incident.io leaned on Expo and React Native to go from zero to production without hiring any additional engineers.

How incident.io decided to build with React Native and Expo

In 2019, before founding incident.io, CTO and co-founder Pete Hamilton consulted with colleagues from Monzo, Freetrade, Deliveroo, and other companies about mobile development approaches.

"The resounding response I got from these other technologists was to take a look at React Native if I hadn't already, and a bunch of them also told me to reach out to the Expo team," Pete said.

Rather than hiring specialized native iOS and Android engineers, Pete leveraged his existing team of product engineers with strong design sensibilities. React Native allowed these engineers to transition into mobile development without specialized native expertise.

"When you combine React Native with Expo it speeds up the time between development and release and it allows the team to build for multiple platforms at once," Pete said. "It was just an irresistibly compelling direction for us to go."

Continuous Native Generation and the Expo golden path

The team adopted Continuous Native Generation (CNG), meaning iOS and Android directories are ephemeral and can be regenerated as needed. Configuration happens through config plugins and Expo modules rather than direct native project manipulation.

"With Expo we can get away with never installing Xcode or Android Studio," said Rory Bain, Lead Project Engineer. "This is incredibly valuable for our team. They can just scan the QR code in Expo and have a wrapper app ready to go."

The team committed to the Expo golden path: using Expo-built packages and solutions that work harmoniously together, including expo-updates instead of CodePush, Expo SDK packages instead of third-party alternatives, and EAS instead of CircleCI or Bitrise for mobile CI/CD.

"Having this golden path that Expo has completely thought through has been really nice," Rory said. "Not having to maintain everything and manage provisioning profiles and distribution certificates and just generally make decisions all the time has really sped us up."

Building custom native modules

Generally, Expo accelerated incident.io's development significantly. However, one challenge required native implementation: sending notifications that bypass phone silent switches and Do Not Disturb settings. iOS natively supports this via a notification payload boolean. Android lacked equivalent functionality in available React Native libraries.

The solution: develop a custom native module using Expo's native module tooling. Despite occasional need for native code access, the team considers the tradeoff well worth it since deep native work comprises only about 2% of development effort.

Expo Router for navigation and deep linking

The team adopted Expo Router for navigation, which clarified app organization structure. File-based routing enabled automatic deep linking to specific app screens via push notifications with minimal configuration.

"For example, in our app when you get an error notification you tap on it to open an escalation and acknowledge that you saw the error notification," Rory said. "We basically got that for free by building on Expo Router."

The ROI of building with Expo

"The thing that I care about most at this stage of the company is speed. How quickly can we go from idea to market?" Pete said. "With Expo we've been able to go from nothing to a full production release in months without hiring any additional engineers. That's the ROI of Expo."

"One easy way to measure the ROI is just to add up all the revenue we make in the next six months," Pete said. "Because without Expo we'd still be in development six months from now."

What's next

incident.io recently launched an On-Call service. The company now operates a monorepo where everyone installs mobile app dependencies via the web app build. Engineers simply scan QR codes and run a single command to connect phones to Expo development servers. The team plans to expand this approach across the organization to further accelerate mobile development.

The framework behind thousands of companies.

Get Started for Free