Building v0 iOS and Fixing React Native Along the Way

youtube-cover
Guests
Fernando Rojo
Head of Mobile
@
Vercel
Szymon Rybczak
Software Developer
@
Callstack
Oskar Kwaśniewski
Software Developer
@
Callstack

Vercel's v0 iOS app is built with React Native, yet delivers the look and feel of a native iOS product. In this episode, the team behind it walks through the technical decisions, trade-offs, and low-level fixes required to ship a polished, production-ready app under real deadlines.

Episode summary

Ola Desmurs-Linczewska is joined by Fernando Rojo, Head of Mobile at Vercel, and Callstack engineers Oskar Kwaśniewski and Szymon Rybczak. Together, they break down how v0 mobile was built using React Native and Expo, why the team went iOS-first, and how deep dives into Yoga, gesture handling, and WebView internals shaped the final product.

Iterating to greatness

At Vercel, shipping early and iterating constantly is a core principle. For v0 iOS, this meant prioritizing release momentum while avoiding blocking issues that didn’t affect core experience. The team focused on shipping a solid foundation, then refining UI, interactions, and performance through frequent iterations rather than waiting for perfection.

Expo as the foundation

Expo was the default choice for starting the project, providing fast iteration, EAS builds, and Expo Modules for custom native integrations. As the app matured, the team leaned heavily on Expo’s extensibility, writing native modules when needed and patching libraries directly to keep development moving.

Going iOS-first

The team deliberately focused on iOS, targeting the latest system versions early. This allowed them to fully embrace platform-specific APIs such as scroll view insets and advanced keyboard handling without compromising for cross-platform parity. Android is planned, but only after the iOS experience feels complete.

Fixing React Native at the source

While building v0 iOS, the team frequently uncovered opportunities for improvement within the React Native core, such as modal flickering caused by asynchronous Yoga layout updates. Rather than working around them, they patched React Native directly and upstreamed fixes, some of which landed in later React Native releases.

Open source as a byproduct

Several components built specifically for v0 were open-sourced, including liquid glass UI effects and a rewritten pager view implemented in SwiftUI. Other work, such as improved keyboard handling and gesture coordination, is planned for release once it is decoupled from v0-specific logic.

What made this possible was the team’s habit of pushing complexity downward: whenever a solution felt too low-level, fragile, or app-specific to live comfortably in product code, it became a candidate for extraction. The result was a steady stream of libraries, forks, and upstream contributions shaped by real production constraints, rather than abstract examples, turning v0 iOS into a proving ground for tools the wider React Native community can now build on.

Resources

Insights

Learn more about AI

cover

Nov 17Talk

Efficient On-Device LLMs in React Native Done Right

Artur Morys-Magiera will cover efficient on-device LLMs in React Native, including runtimes, model selection, quantization, and platform constraints.

cover

Nov 17Talk

On-Device AI After WWDC: What Changed for React Native

Mike Grabowski will explain what changed for system-provided on-device AI after WWDC and what React Native developers can build with it.

cover

Nov 16Talk

Beyond Coding Agents: Making ADLC Work Across Platforms

Mike Grabowski will explain how to close the full agentic development lifecycle across mobile, web, and native platforms.

Building the React Native Software Factory — cover

Nov 11Talk

Building the React Native Software Factory

Join us at React Foundation Meetup London on November 11 to explore how AI agents build and debug React Native apps, from one terminal to the cloud.

Building a Software Factory: Write Specs an Agent Can Build From — cover

Nov 6Article

Building a Software Factory: Write Specs an Agent Can Build From

Learn how to research requirements, resolve open decisions, and write testable specs that AI coding agents can implement without the planning conversation.

 Large-Scale Migrations With Coding Agents: Planning, Verification, and Rollback — cover

Nov 4Article

Large-Scale Migrations With Coding Agents: Planning, Verification, and Rollback

Plan codebase migrations with coding agents using reviewable requirements, verification checks, staged rollouts, and defined rollback criteria.

Quantization Impact on LLM Quality: A Case Study of Apex — cover

Nov 4Talk

Quantization Impact on LLM Quality: A Case Study of Apex

Artur Morys-Magiera and Lech Kalinowski share findings from 344 benchmark runs with Apex, our Gemma-based LLM, examining the trade-offs between model size, decode speed, and quality.

Conversational Banking: From Customer Questions to Authorized Actions — cover

Nov 2Article

Conversational Banking: From Customer Questions to Authorized Actions

Explore conversational banking architecture through a card-dispute example, covering tool access, authorization, execution, observability, and human handoff.

Building a Software Factory: The Night My Agents Waited for Me — cover

Oct 28Article

Building a Software Factory: The Night My Agents Waited for Me

Learn how permissions, review limits, and missing product decisions stalled two overnight coding agent runs, and how their maintainer revised the workflow.