The bottleneck was a laptop
Most arguments about coding agents are arguments about models: which one reasons better, which one costs less per token. Shopify's post is about a dumber constraint. Its web and backend teams were already delegating work to River, an agent that lives in Slack, without tying up their own machines, because River ran on Linux servers. Mobile broke that arrangement. River could edit Swift on Linux, but building and testing the iOS app still meant going back to a developer's Mac, and just three or four parallel workflows were enough to saturate one. Work also stopped whenever someone closed a lid.
That is a capacity problem wearing a model problem's clothes. An agent that can start ten tasks but can only build three of them has not delegated the work; it has queued it on the most expensive, least replaceable computer in the building, which happens to have a person attached to it.
What Remote Dev actually is
Remote Dev is a fleet discipline more than a single tool. Shopify keeps Macs warm in advance — monorepo checked out, tools installed, apps built and caches warm — because initial app compilation and main checkout took over 30 minutes. An agent claims a ready machine over SSH, synchronises its branch, and Shopify says the time from requesting a Mac to inspecting code changes on a running device went down to just a few minutes. The post provides no benchmark distribution or independently measured latency for that claim. When the session ends, the Mac is destroyed and a replacement is prepared, so no agent inherits another session's state. Idle Macs are also replaced periodically, on a staggered schedule, so the pool stays available.
Android needed a workaround that says a lot about why this infrastructure did not already exist off the shelf. In Shopify's cloud development environment, the macOS virtual machines could not provide the nested virtualisation its Android emulator setup required. So the emulator runs on a separate Linux machine with nested virtualisation enabled and is connected to the Mac session, all within the same SSH session. Shopify is candid that the agent did not cope with the arrangement on its own: River kept stating that an iOS build cannot run on Linux, forgot the remote Mac existed, or went silent during long operations. The fixes were unglamorous — a skill that teaches the workflow, a CLI that encapsulates the SSH flags, and tmux panes the agent can observe while builds run. The model did not get smarter. Its instructions got more specific, and its environment stopped lying to it.
The part worth copying is the proof
A merged pull request is a weak receipt. Code can compile and still behave wrongly, and an agent working on rebases, merge conflicts, CI failures, PR feedback, crash triage and code review will produce volume that looks impressive in a share-of-PRs chart regardless of difficulty. Shopify seems to know this, because the strongest part of the system is not the fleet. It is the verification layer built on top of it.
River can drive the running app on both platforms, capture screenshots and recordings, and for a bug fix, reproduce the broken behaviour first and then repeat the same steps after the fix, so a reviewer compares footage rather than trusting a diff. It can turn those recordings into narrated explainer videos. Live Preview then streams the iOS Simulator and Android Emulator to a browser over WebSockets, so a designer, a PM or a web developer can open a link and use the app the agent built, with no local setup and no Mac of their own. That last detail changes who can review agent work. Verification stops being a privilege of whoever owns the right hardware.
A classifier watches the failures
Shopify also describes a feedback loop around the mobile work. It used Jev, a fast and cheap classifier model, to observe all River conversations on mobile, tag them with multiple questions and answer each message. Shopify categorises each conversation based on how good the outcome was, and uses the failures as input for an LLM to find improvements.
Read that at the strength the post supports. An internal classifier called Jev categorises River's mobile-development conversations and outcomes, helping engineers identify recurring failures and improve the agent's instructions. That is a prompt and skill improvement loop. It is not evidence of automated self-training, and it is not a claim that River's model weights are being updated.
Read the 61% at the resolution Shopify published it
The figure will travel further than the post will. Before it does, note what Shopify did and did not publish. The 6% and the 61% come from a chart of agent-attributed merged-PR share. The text around it gives no absolute number of pull requests, no dates for either endpoint, and no accompanying measures — no review rejection rate, no revert rate, no defect counts, and no split between the delegable tasks Shopify lists and feature work. A share can also rise because the total number of merged pull requests changes, or because the mix of tasks changes. Shopify's chart provides neither the absolute counts nor the task categories needed to distinguish those possibilities.
None of that makes the number invented. It shows that Shopify reports a much larger share of its merged mobile PR work is now attributed to River, and that it has built the machine fleet, session hygiene and review tooling to sustain agent work at that scale. What it cannot show, on the evidence published, is whether the code got better, cheaper per correct change, or merely faster to produce. The post also ends with a mobile-engineering hiring invitation. That context does not invalidate the technical account, but the 61% figure remains a company-reported measure without the underlying PR counts or code-quality outcomes.
For a team deciding what to build next, the transferable sequence is still clear. Count where your agents actually stall. If the answer is environments, setup time and proof, those are cheaper to fix than the model is to replace, and Shopify has just published one working arrangement, workarounds included.
Sources
- [1] Shopify Engineering, "We gave AI agents a mobile dev environment", 22 October 2026, by Michael Garfinkle, Mauricio de Meirelles and David Cortes (primary source, read in full first-hand for this article; source for the laptop constraint, the warm Mac pool design, claim over SSH, session-end destruction and staggered idle rotation, the setup-time wording, the Android emulator architecture on separate Linux machines, the skill/CLI/tmux fixes, screenshots, recordings, explainer videos and Live Preview, the Jev classifier description, the 6% to 61% merged-mobile-PR chart, and the closing mobile-engineering hiring call)Read source