Code

The Progressive Web App (PWA) is not a trend — at least not the kind that fades away. While the native mobile app market has become saturated and app stores represent an increasingly difficult landscape, PWAs offer a surprisingly durable alternative. But when does it really make sense to consider one?
A PWA is built on three core principles:
These are not marketing terms: the Service Worker specification, the Web App Manifest, and the Cache API are concrete, widely supported web standards today.
Many people assume that React Native, Flutter, and Expo have solved the “write once, run anywhere” problem. That’s partly true — but PWAs target a different layer.
Zero installation friction. The app store process — registration, review, update cycles — takes time. A PWA can be distributed via a URL with instant updates. For B2B software and internal tools, this is a meaningful advantage.
Search engine optimisation. Native apps are invisible to search engines. A PWA is simultaneously a website and an application — content is indexable and links are shareable.
Lower development cost. A well-structured PWA serves all platforms from a single codebase, including desktop, without a native build pipeline.
The reality shouldn’t be glossed over: there are cases where a native app is the better choice.
If any of these are critical requirements, the native route is justified.
At ZNiTech we typically suggest the PWA approach when:
If you’re using Next.js (which is our default frontend stack), the next-pwa package is the easiest entry point:
npm install next-pwa
// next.config.js
const withPWA = require('next-pwa')({
dest: 'public',
disable: process.env.NODE_ENV === 'development',
});
module.exports = withPWA({
// next config
});
You define the Web App Manifest in public/manifest.json and reference it in the <head>. It’s worth providing icons in both 192×192 and 512×512 sizes.
The Workbox-based Service Worker automatically caches static assets — for dynamic routes you’ll want to write your own strategy (NetworkFirst or StaleWhileRevalidate, depending on the endpoint).
A PWA doesn’t replace a native app in every scenario — but in many cases it makes one unnecessary. If the project is web-first, the team thinks in JavaScript/TypeScript, and app store presence is not critical, a PWA is a production-ready choice today. The web platform narrows the gap with native capabilities year on year, and the development investment feeds the broader web ecosystem.
For borderline cases, we’re happy to talk it through — get in touch.