Published Build3 min read
Uber Eats Put Its Feeds in a Webview. The Interesting Part Is What It Cost.
A senior engineer's account of the migration spends its energy on store sandboxes, behaviour at scale, and internal disagreement, which is exactly the bill most teams forget to budget for.
Written for builders.See today for builders

What happened
- Nick DiStefano identifies himself as a Senior Staff Software Engineer at Uber Eats and says he is speaking about a large-scale migration and UI frontend technology change the team has been making.
- The presentation is titled "Migrating Uber Eats Feeds to Webview" and is published by InfoQ.
- DiStefano says that once the fundamentals are in place and the team is building native apps inside Apple's and Google's sandboxes, there are edge cases to work around, and that more complicated things come up at scale.
- DiStefano describes the step as a fairly drastic change that had a lot of controversy around it.
- The initial state was native app screens built with traditional native stacks and native-first design: hundreds of screens, hundreds of developers, thousands of metrics logged, and hundreds of metrics built on top of those to measure key performance indicators around different parts of the shopping funnel.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
Uber Eats has moved feed screens out of its native stacks and onto a webview stack, described by Nick DiStefano, a senior staff software engineer at the company, in a presentation published by InfoQ [1] [2]. The reason to read it is not that a large app is rendering HTML; it is that the account puts its weight on the store sandboxes, the things that surface at scale, and the internal controversy [3] [4], which is the part teams pricing this trade tend to leave out of the estimate.
Start with what was there. DiStefano describes hundreds of native-first screens, hundreds of developers, thousands of logged metrics, and hundreds of metrics built on top of those to measure key performance indicators across the shopping funnel [5]. He also describes intricate UI transitions, timing, and flows running from the home feed through search pages to the store page and checkout [6]. That is the surface area a webview has to reproduce, and it is why the team did not attempt everything at once: the migration began with one of the more complex feeds [7].
The motivation is release control, not rendering. DiStefano frames the frustration as not having full ownership of the stack, because shipping binaries to the Apple and Google stores means changes are subject to review processes [8]. He says whole teams of program managers and tooling providers exist at Uber to manage that relationship and to work out the right shipping cadence, weekly or every two weeks [9]. That is the cost line the webview is meant to attack.
Two pieces of precision matter for anyone copying this. First, the result is not a web app in a wrapper: DiStefano calls it a native-driven, single-page webview architecture, and says it is not fully moving to web-only [10]. Second, he does not present cross-stack mobile as solved. He describes it as a holy grail people have chased, with recurring problems in cross-platform stacks, and says the talk covers when this is a good idea and what infrastructure has to be in place for it to work [11]. The honest reading is that the webview is the visible artefact and the supporting infrastructure is the actual project.
On outcomes, the supplied material is thin. DiStefano says the change has been very successful and that the team is happy with where it has got to [12], but the transcript as provided contains no figures for release frequency, latency, conversion, or engineering headcount saved, and it breaks off mid-sentence in the middle of the release-cycle discussion [13]. So the claim to carry forward is the shape of the problem, not a measured payoff.
What to watch: whether the full talk enumerates the specific sandbox constraints and the scale failures rather than naming the categories [3], since those are the items that decide whether a team can run this at all; whether the store page and checkout follow the first feed, given the migration deliberately started narrow [7] [6]; and whether Uber publishes the metric continuity story, because hundreds of derived funnel metrics sitting on thousands of logged events are the thing most likely to break quietly when the rendering layer changes underneath them [5].
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
Nick DiStefano identifies himself as a Senior Staff Software Engineer at Uber Eats and says he is speaking about a large-scale migration and UI frontend technology change the team has been making.
- [2]
The presentation is titled "Migrating Uber Eats Feeds to Webview" and is published by InfoQ.
ReportedView cited source - [3]
DiStefano says that once the fundamentals are in place and the team is building native apps inside Apple's and Google's sandboxes, there are edge cases to work around, and that more complicated things come up at scale.
- [4]
DiStefano describes the step as a fairly drastic change that had a lot of controversy around it.
- [5]
The initial state was native app screens built with traditional native stacks and native-first design: hundreds of screens, hundreds of developers, thousands of metrics logged, and hundreds of metrics built on top of those to measure key performance indicators around different parts of the shopping funnel.
- [6]
DiStefano describes very intricate UI transitions, timing, and flows that run from the home feed into search pages and through the shopping app, including the store page and checkout.
Sources & coverage · 1 publisher
The reporting this story was synthesized from, earliest first. Every link goes to the original.
- infoq.comNick DiStefanoAug 13Presentation: Migrating Uber Eats Feeds to Webview
Additional citations
- Nick DiStefano, in an InfoQ presentation transcript
- Nick DiStefano

