← Projects
React Native at Amazon icon

React Native at Amazon

The conference app for Amazon's internal React Native conference — enterprise-signed builds distributed to every attendee, on a build system I'd built for a different app entirely.

amazonreact nativeiosbuild systemsconference

React Native at Amazon was the company's internal conference for the several dozen teams shipping React Native across Amazon's apps and devices. I built and maintained the conference's own mobile app, across the 2019 and 2020 editions.

Screenshot 1
The 2019 edition.

Why it existed as engineering work

The interesting part was never the app — it was getting it into people's hands. An internal conference app has to be signed with enterprise certificates and distributed to every attendee, on a build system that has to actually exist.

I had just rewritten the iOS and Android build systems for the Echo Look app to generate and consume React Native JavaScript bundles automatically through Amazon's internal build tooling, described in React Native Multi-Root Architecture. That approach became the template: I stood up the same enterprise-certificate-signed pipeline for the conference app, and the conference app in turn became the reference other teams pointed at when they needed one.

The 2020 edition grew into a set of role-specific experiences — separate builds and views for attendees, presenters, coaches, and planners.

RNA20 attendee badgeRNA20 presenter badgeRNA20 coach badgeRNA20 planner badge
Four roles, four builds.

What I took away from it

Building the conference's app meant also being in the room for its content. My notes from those sessions are mostly about the React Native runtime's then-forthcoming rearchitecture: the move off the classic async, batched, serialized bridge toward JSI, a C++ interface directly into the JavaScript VM that permits synchronous execution where it's genuinely needed — interactive gestures, controlled text input, efficient data exchange — with React Fiber making concurrency safe on a single thread. Alongside it: view flattening and pre-emptive batched allocations for recycling, Yoga computing layout off the main thread, and a port of the React Native APIs to living-room devices implemented purely in TypeScript against DOM-like and canvas-like platform APIs, with no native bridge at all.

That was the era when React Native stopped being a bet and started being infrastructure, and getting to watch it from inside the company running the largest deployments of it shaped a lot of how I thought about the platform afterward.