Why Players Should Get Apps Tailored for Their Device, Not One Size Fits All
We’ve been serving everyone legacy code. Differential builds let us deliver near-native speed on modern devices, while still supporting older ones.

One-size-fits-all clothing has its appeal. Everyone is covered. Nobody is left out. But it is never a perfect fit. On some it hangs loose, on others it pulls tight. For years, our JavaScript bundle has been much the same: serviceable, universal, but far from tailored.
Serving Everyone, Penalising Many
Our guiding principle was simple: serve everyone. We aimed to make sure that players on old browsers, outdated WebViews, and underpowered devices could still load our apps without error.
To achieve that, we delivered a single JavaScript bundle cut to the ES2015 standard. For those not steeped in the naming, ES2015, ES2020, and ES2022 are editions of the language. Each new cut trims away old stitching, unlocking cleaner syntax and lighter code. ES2015 is the baseline: sturdy, compatible, but heavy with extra fabric.
It worked. Nobody was excluded. But the cost was hidden in plain sight. Modern players were forced to squeeze into hand-me-down code stitched with polyfills and padded out with legacy helpers.
On the very devices most capable of speed, our apps felt slower than they should. Parsing dragged. Time to interactive stretched. And as expectations rose for fast, fluid, near-native experiences, the compromise grew harder to justify.
WebViews and Their More Capable Cousin
The gap is most visible on Android. Standard WebViews are usually kept current through Play Services, so they are not fossils. They render modern pages and support the essentials. But they often lack the full breadth of optimisations, the latest JavaScript engine tweaks, or the deep integration that Chrome enjoys.
Trusted Web Activities, by contrast, are the more capable cousin: running inside the full Chrome browser, with every optimisation, JIT enhancement, and API at their disposal. In a TWA, modern code can stretch its legs, run close to native speed, and show what the web is really capable of.
I wrote about this shift in Beyond the WebView: Why Apps Belong in a PWA + TWA World, where TWAs are not just a technical option but a statement of intent. They mark a move away from compromised, containerised experiences towards the web itself as the primary runtime.
And yet, until now, we have hobbled that potential by serving even TWAs the same legacy bundle as everything else. It is like buying a racing bike and fitting it with stabilisers.
A More Tailored Fit
The answer is differential loading. Instead of forcing everyone into one shape, we cut three fits. Think of them as patterns cut from the same cloth at different levels of detail.
- Modern (ES2022) is the most recent cut. Slim, lightweight, and efficient, it uses the latest features of the language to strip away extra fabric.
- Intermediate (ES2020) is a step back. Still neat, still modern, but missing some of the finer tailoring.
- Fallback (ES2015) is the safe, sturdy option. A little heavier, stitched for compatibility above all else.
At runtime, each device gets the bundle it deserves. Modern engines are no longer shackled by yesterday’s syntax. Legacy devices are still served, but without dictating the experience for everyone else.
Near-Native Speed
The difference is immediate. In TWAs, ES2022 bundles compile with full JIT, benefit from hidden classes and inline caching, and run with almost native responsiveness. Animations are smooth, interactions snappy, and heavy frameworks like Angular no longer feel like a burden. The same app that once felt bloated suddenly feels alive.
For players, it means time to interactive drops, the UI feels fluid, and the distance between web and native narrows to a hairline.
Beyond the Lowest Common Denominator
Compatibility once meant sameness. Today, it means respect: giving each device the best it can handle. Differential loading is not just an optimisation trick, it is a shift in philosophy. We stop penalising the many for the sake of the few. We start trusting modern environments to show their strength, while still carrying those who need more help.
The web does not have to be one size fits all. It can be tailored, measured, and cut to fit, ensuring players feel at home whether they arrive on the oldest phone or the more capable cousin of a WebView.
Further Reading
If you want to dive deeper into why TWAs matter, see Beyond the WebView: Why Apps Belong in a PWA + TWA World.