Skip to main content
You're offline. Cached data shown.
Technology7 min read

Publishing a PWA on Google Play: The Complete TWA Checklist for 2026

A step-by-step guide to publishing your Progressive Web App on Google Play using Trusted Web Activities. Covers signing keys, Digital Asset Links, Play Store requirements, and lessons learned from shipping SpaceNexus.

By SpaceNexus TeamMarch 18, 2026

You've built a great PWA. It has a service worker, a manifest, offline support, and passes all the Lighthouse checks. Now you want to put it on Google Play. Here's exactly how we did it with SpaceNexus — and what we learned along the way.

Why TWA Over Capacitor or React Native

There are three common approaches to getting a web app on the Play Store:

  • Trusted Web Activity (TWA): A lightweight Android wrapper that opens your PWA in a full-screen Chrome Custom Tab. No URL bar, no webview — it's Chrome rendering your site natively. The AAB is typically 2-4 MB
  • Capacitor/Cordova: Embeds a WebView and provides native plugin bridges. More control, but you manage a separate build pipeline and the WebView may not match Chrome's capabilities
  • React Native / Flutter: Full native rebuild. Maximum control, maximum effort. Usually only justified if you need hardware APIs that web can't provide

We chose TWA because SpaceNexus is a data-heavy platform that's already optimized for mobile web. A TWA lets us ship one codebase with zero feature lag between web and app.

Prerequisites Checklist

Before you start, make sure you have:

  • A Google Play Developer account ($25 one-time fee)
  • Your PWA passing Chrome's installability criteria: valid manifest, registered service worker, served over HTTPS
  • A signing key (Java keystore) — you'll use this for every release
  • A privacy policy URL (required for all Play Store apps)
  • Play Store screenshots: minimum 2 phone, recommended 2 tablet
  • A feature graphic: 1024x500 px
  • A hi-res icon: 512x512 px with no transparency

Step-by-Step Process

1. Generate Your Signing Key

Use keytool to create a Java keystore. Store the passwords securely — you'll need them for every future release:

keytool -genkeypair -alias spacenexus -keyalg RSA -keysize 2048 \
  -validity 10000 -keystore spacenexus.keystore

Extract the SHA-256 fingerprint — you'll need this for Digital Asset Links:

keytool -list -v -keystore spacenexus.keystore -alias spacenexus

2. Configure Digital Asset Links

Create .well-known/assetlinks.json at your domain root. This file proves to Android that your app and website belong to the same entity:

[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "com.yourapp.package",
    "sha256_cert_fingerprints": ["YOUR:SHA256:FINGERPRINT:HERE"]
  }
}]

Serve it with Content-Type: application/json. Verify it works with Google's Asset Links tool.

3. Build the TWA with Bubblewrap or PWABuilder

We recommend PWABuilder (pwabuilder.com) for the simplest path. Upload your manifest URL, configure your signing key, and it generates a ready-to-upload AAB. Alternatively, use the Bubblewrap CLI for more control.

4. Complete the Play Console Listing

Fill out the store listing: title (50 chars), short description (80 chars), full description (4000 chars), screenshots, feature graphic, and icon. Set your content rating via the IARC questionnaire — most data/news apps qualify as "Everyone."

5. Configure Data Safety

Google Play requires a Data Safety section. Disclose what data you collect, whether it's shared, and your security practices. We created a dedicated /data-safety page that mirrors the Play Store disclosure format.

6. Submit to Internal Testing First

Always start with the Internal Testing track. This lets you verify the app works on real devices before going public. Check that: the URL bar is hidden (Digital Asset Links working), the app opens correctly, push notifications function, and offline mode works.

Common Pitfalls

  • URL bar still showing: Your assetlinks.json is misconfigured or the fingerprint doesn't match. Double-check with the Digital Asset Links validator
  • App crashes on launch: Usually a CORS or CSP issue. Make sure your headers allow the TWA origin
  • Slow cold start: Ensure your service worker precaches critical assets. Users expect near-instant launch from the home screen
  • Push notifications not working: TWAs use the web Push API, not FCM directly. Make sure your VAPID keys are configured and service worker handles push events

Our Results

SpaceNexus shipped as a 3.4 MB AAB with a verified Digital Asset Links configuration. The app launches in standalone mode (no URL bar), supports offline browsing via a TTL-aware service worker cache, and delivers push notifications for launch alerts and space weather events. Every deployment to our web platform is instantly available in the app — zero app store review delay.

Download SpaceNexus on Google Play

Share this article

Share:

Get space intelligence delivered weekly

Join 500+ space professionals who get our free weekly intelligence brief.

Explore this topic with our Get the App

Try Get the App

Get space industry intelligence delivered

Join SpaceNexus for real-time data, market intelligence, and expert insights.

Get Started Free