Lever appen, behold nettet — En 2025 PWA-feltguide
PWA-er i 2025 kan installeres, kjøre offline, sende push-varsler og sitte i oppgavebytteren din—mens de deployeres som statiske filer bak en CDN. Dette er en meningssterk feltguide til hva som er ekte, hva som fortsatt svir, og hvor PWA-er erstatter eller komplementerer native apper.
Noe bemerkelsesverdig skjedde på vei til app-butikkene: nettleseren lærte stille å bli et operativsystem.
I 2025 kan en Progressive Web App installeres, kjøre offline, sende push-varsler (selv på iOS), fange lenker og filer, vise varselbadge på ikonet og sitte i oppgavebytteren din som enhver annen app—mens den fortsatt deployeres som en mappe med statiske filer bak en CDN.
Dette er en meningssterk feltguide til PWA-er akkurat nå—hva som er ekte, hva som fortsatt svir, og hvor det gir mening å erstatte (eller komplementere) native og tunge SPA-rammeverk.
---
Hva er egentlig en PWA i 2025?
En PWA er bare et nettsted med tre ekstra ingredienser:
- HTTPS (obligatorisk for service workers).
- Et Web App Manifest (
manifest.webmanifest) som beskriver navn, ikoner, start-URL og vindusmodus (f.eks.display: "standalone"). - En Service Worker som gir deg offline-caching, forespørselsavskjæring, bakgrunnsoppgaver og push-infrastruktur.
Når disse er på plass og kjøretiden anser appen som "installerbar," tilbyr nettleseren en installasjonsflate og OS-et behandler den som et app-vindu.
På Windows omfavner Microsoft aktivt PWA-er—native vinduschrome, butikkinnsending, widgets, app-handlinger. På Android kan du pakke en PWA som en Play Store-app via Trusted Web Activity (TWA). På iOS installeres PWA-er fra Safari og—etter fjorårets DMA-krangel—forblir støttet.
---
Hvor PWA-er skinner (og hvor de ikke gjør det)
Styrker du kan stole på
- Installerbarhet uten portvakter. Brukere kan legge til på hjemmeskjerm/skrivebord umiddelbart.
- Offline-først UX med øyeblikkelige innlastinger. Service workers muliggjør cache-then-network-strategier.
- Push på alle store plattformer. iOS la til Web Push for installerte webapper i iOS 16.4.
- OS-integrasjon fortsetter å vokse. App-badges, snarveier, widgets, lenkefangst.
- Bevist forretningseffekt. Twitter Lite, Starbucks, Uber viste engasjementsgevinster.
Begrensninger du må designe rundt
- Safari-mangler og retningslinjer. Background Sync støttes ikke på Safari; noen API-er er kun Chromium.
- Lagring er kvotestyrt og kan slettes. Behandle nettleserlagring som en cache.
- Ingen iOS App Store-oppføring som PWA. Windows og Play Store er vennligere.
- Push- og varslingstretthet. Chrome deaktiverer nå ignorerte varsler automatisk.
---
PWA + HTMX-mønsteret
Den kombinasjonen fungerer elegant:
- HTMX håndterer interaktivitet ved å bytte server-rendret fragmenter.
- Service worker avlytter disse fragmentforespørslene, serverer cachede svar umiddelbart offline.
- Resultat: du beholder enkelheten, SEO-en og tilgjengeligheten til server-rendret HTML, men med app-lignende hastighet og motstandsdyktighet.
---
Arkitektur du kan levere dette kvartalet
Tenk i lag:
- Origin-kontrakt: forutsigbare URL-er for dokumenter og fragmenter.
- Caching-policy: pre-cache app-shell; runtime-cache HTML, JSON og media.
- Revalidering: ETag/Last-Modified og SWR for å holde innhold ferskt.
- Motstandsdyktighet: idempotente skrivinger, synkroniseringskøer.
- Utvidede muligheter: push, badging, fil- og URL-håndtering.
Minimalt Manifest
{
"name": "Acme Reader",
"short_name": "Acme",
"start_url": "/?source=pwa",
"display": "standalone",
"background_color": "#0b0b0c",
"theme_color": "#0b0b0c",
"icons": [
{"src": "/icons/icon-192.png", "sizes": "192x192", "type": "image/png"},
{"src": "/icons/icon-512.png", "sizes": "512x512", "type": "image/png"}
]
}
Service Worker: Workbox i tre ruter
// sw.js
import {precacheAndRoute} from 'workbox-precaching';
import {registerRoute} from 'workbox-routing';
import {StaleWhileRevalidate, NetworkFirst, CacheFirst} from 'workbox-strategies';
precacheAndRoute(self.__WB_MANIFEST || []);
// 1) HTML-dokumenter: rask første paint, så oppdater stille.
registerRoute(
({request}) => request.destination === 'document',
new NetworkFirst({ cacheName: 'html', networkTimeoutSeconds: 3 })
);
// 2) HTMX/JSON-fragmenter: stale-while-revalidate holder UI rask.
registerRoute(
({request, url}) =>
request.destination === '' &&
(url.pathname.startsWith('/fragment/') || url.pathname.endsWith('.json')),
new StaleWhileRevalidate({ cacheName: 'data' })
);
// 3) Statiske assets: cache-first.
registerRoute(
({request}) => ['style','script','font','image'].includes(request.destination),
new CacheFirst({ cacheName: 'assets' })
);
---
Hvor du deployerer PWA-er
- Det åpne nettet (alltid).
- Microsoft Store: ett-klikks pakking via PWABuilder.
- Google Play: pakk med TWA (Bubblewrap CLI).
---
Kvalitetsterskel: Hva "bra" ser ut som
- Installerbar: Gyldig manifest + SW; ekte ikoner;
display: standalone. - Vitals: LCP, INP, CLS i grønt.
- Motstandsdyktighet: offline UX for kjernereiser.
- Ressurshygiene: versjonerte URL-er for assets; SW cache-opprydding ved aktivering.
---
Praktiske "ikke gjør" som sparer måneder
- Ikke pre-cache verden. Pre-cache shell og kritiske stier; la runtime-caching lære resten.
- Ikke stol på nettleserlagring med kanonisk tilstand. Behandle det som en cache.
- Ikke overdriv push-varsler. Chrome deaktiverer bokstavelig talt ignorerte varsler nå.
- Ikke anta at bakgrunnsoppgaver eksisterer. Safari-brukere er også mennesker.
---
Når velge en PWA over native eller tung SPA
Velg PWA for:- Innholdstunge apper (nyheter, dokumenter, referanse, læring) hvor offline og rask navigasjon betyr mer enn dype enhets-API-er.
- Transaksjonelle apper med enkle periferier (skjemaer, utsjekking, planlegging).
- Felt- og interne verktøy hvor Windows og Android dominerer.
- Dypt sensorintensive apper, lav-latens Bluetooth eller bakgrunns-geofencing.
---
2025 virkelighetssjekk
- PWA-er er førsteklasses på Windows og Android (butikkpakking, OS-overflater).
- På iOS er de brukbare og nyttige, med push og installasjon—men fortsatt begrenset av WebKits bakgrunns- og API-retningslinjer.
- Kapabilitetsoverflaten fortsetter å vokse (badging, fil/URL-handlere, widgets).
Og ja, dette passer vakkert med en HTMX-tankegang: jo mindre rammeverk du sender, jo mer kan nettverket og nettleseren hjelpe deg.
---
Avslutning
I 2025 er en PWA en applikasjon du kan se kildekoden på. Den er installerbar, motstandsdyktig og respektfull overfor brukerens enhet og oppmerksomhet. Den spiller godt med server-rendret HTML (HTMX), og den arver global distribusjon og SEO fra det åpne nettet.
Nettleseren ble din plattformuavhengige kjøretid. Du trengte ikke spørre om tillatelse.
Nå er oppgaven å designe som om den friheten betyr noe.