En progressiv webapp er et nettsted bygget med funksjoner som gjør at det kan oppføre seg mer som et installert program: det kan legges til på en enhets startskjerm, startes uten nettleserens Chrome, fungere offline eller på upålitelige tilkoblinger, og i støttede miljøer motta push-varsler. Det er et sett med funksjoner som brukes på et vanlig nettsted i stedet for en separat teknologi.
Det tekniske grunnlaget er en tjenestearbeider, som er et skript som kjører separat fra siden, og som kan fange opp nettverksforespørsler og servere hurtigbufrede svar, og et manifest for webapper som beskriver hvordan applikasjonen skal se ut når den er installert. Begge krever at nettstedet serveres over en sikker forbindelse. Utover disse er funksjonene progressive: en nettleser som støtter dem gir den forbedrede opplevelsen, mens andre får den vanlige nettsiden.
Håndtering av frakoblede og upålitelige tilkoblinger er den funksjonen med den klareste praktiske verdien. En tjenestearbeider kan mellomlagre applikasjonsskallet og tidligere vist innhold, slik at en besøkende på en periodisk mobiltilkobling ser innhold i stedet for en feilside, og et tilbakevendende besøk lastes inn fra mellomlagringen i stedet for fra nettverket. For målgrupper med dårlig tilkobling er dette en betydelig forbedring snarere enn en forbedring.
Installasjon fjerner friksjonen med distribusjon i appbutikken, som er det viktigste kommersielle argumentet. Det er ingen innsendingsprosess, ingen forsinkelse i gjennomgang, ingen butikkprovisjon, og oppdateringer distribueres umiddelbart uten å vente på at brukerne skal installere dem. For bedrifter med applikasjoner som ikke krever dyp plattformintegrasjon, unngår dette en betydelig løpende kostnad og en avhengighet av plattformvakter.
Forskjeller i plattformfunksjonalitet er fortsatt den største begrensningen, og de har blitt ujevnt mindre. Støtte for installasjon, varsler og bakgrunnsfunksjonalitet varierer mellom plattformer, der iOS historisk sett er mer restriktiv enn Android, og lagringsgrenser og retningslinjer for utkastelse varierer. Det er nødvendig å vurdere hva som faktisk er tilgjengelig på plattformene et publikum bruker, i stedet for å anta paritet, før man forplikter seg til en tilnærming som er avhengig av en bestemt funksjonalitet.
Oppdagelse er en reell avveining i begge retninger. Nettdistribusjon betyr at applikasjonen er tilgjengelig via lenke og synlig i søk, noe som er en betydelig fordel i forhold til butikkdistribusjon der oppdagelsen avhenger av rangering i en butikk. Det betyr også at applikasjonen ikke vises i butikken der mange brukere leter etter apper, og det finnes ingen tilsvarende installasjonsledetekst som en butikkoppføring gir.
Push-varsler fortjener en mer skeptisk vurdering enn de vanligvis får. Funksjonen er genuint verdifull for tidssensitive, individuelt relevante meldinger, og den misbrukes mye til reklameinnhold som mottakerne ikke forutså. Fordi tillatelse forespurt én gang og avslag i praksis er permanent, vil det å spørre før det etableres noen verdi, føre til pålitelige avslag som ikke kan gjenopprettes senere når det er noe verdt å sende.
Bufring av tjenestearbeidere introduserer sine egne risikoer som krever bevisst håndtering. En bufringsstrategi som serverer foreldet innhold på ubestemt tid, fører til at brukere ser utdatert informasjon uten noen åpenbar måte å oppdatere på, og en dårlig distribuert tjenestearbeider kan være vanskelig å fjerne fra enheter som allerede har installert den. Versjonskontroll, oppdateringsstrategier og en mekanisme for å tvinge frem oppdatering er nødvendige snarere enn valgfrie.
Fordi tilnærmingen spenner over frontend-arkitektur, caching-strategi og distribusjonsbeslutninger, er det en produktbeslutning snarere enn en teknisk. I praksis velges funksjonssettet innenfor produktutvikling mot målgruppens faktiske behov, ligger implikasjonene for mellomlagring og levering hos nettytelse arbeid, og avveiningen mellom oppdagelsesgraden på nett og i butikk veies vanligvis opp mot den bredere kanalstrategien i strategisk planlegging og rådgivning.