·7 min read·

Shipping a Nuxt PWA straight to Google Play.

Trusted Web Activities turned our Totton Timber PWA into an installable Android app — without a single line of Kotlin. Here's how, and when it's worth it.

Totton Timber wanted to rank on Google, integrate with their Ten-25 stock system, and have an installable app on the Play Store. They didn't want three codebases. We delivered one Nuxt PWA and wrapped it as a Trusted Web Activity.

Why TWA, not a real native shell

A TWA is a Chrome window pretending it isn't one. You get the full-screen feel of a native app, no browser chrome, and a real Play Store listing — but every line of code is still the same Nuxt application that runs on the public web. One build, one bug surface, one team.

The setup, step by step

  • 01Ship the Nuxt PWA to production at a real HTTPS URL with a complete web app manifest.
  • 02Publish a Digital Asset Links file at /.well-known/assetlinks.json that proves the Play Store app is allowed to wrap your domain.
  • 03Use Bubblewrap (Google's CLI) to generate the Android wrapper app from your manifest URL.
  • 04Sign the wrapper APK / AAB with a Play Store key and submit it as a normal Play release.
  • 05When the URL updates, the app updates. No new Play release required for content changes.

Comparison — TWA vs Capacitor vs Native

ConcernTWACapacitorNative (Kotlin)
Code shared with web100%~95%0%
Native API accessLimited (browser APIs)Most native APIs via pluginsFull
iOS supportNoYesNo (Android-only)
Build complexityLowMediumHigh
Play Store presenceYesYesYes
Time to first shipDaysWeeksMonths
Wrapping a web app for Play Store — TWA vs Capacitor vs native.

When it's the right call

  • 01Your product is fundamentally web-based — content, search, stock, dashboards.
  • 02You want the discoverability of the Play Store but don't need iOS-only APIs.
  • 03You don't want to manage two release cycles for the same product.

When it isn't

  • 01You need iOS — Apple still doesn't support TWAs.
  • 02You're shipping anything that depends on tight native APIs (deep Bluetooth, advanced camera, AR).
  • 03Your team isn't comfortable owning a service worker.

For Totton Timber it was the right call. The PWA still ranks. The Play Store version is still downloaded. The codebase is still one.

For Totton Timber it was the right call. The PWA still ranks. The Play Store version is still downloaded. The codebase is still one.

Talk to Remiam about a system like this.