Una aplicación web progresiva (PWA) es un sitio web que se ve y se comporta como si fuera una aplicación móvil. Las PWA se construyen para aprovechar las características nativas de los dispositivos móviles, sin necesidad de que el usuario final visite una tienda de aplicaciones, haga una compra y descargue el software localmente. En su lugar, una PWA puede localizarse con una consulta en el motor de búsqueda y acceder inmediatamente a través de un navegador.
Las PWA eliminan la necesidad de que los comerciantes electrónicos desarrollen aplicaciones nativas para múltiples sistemas operativos móviles. Al igual que los vídeos de YouTube, el contenido de las PWA se descarga de forma progresiva, lo que proporciona al usuario final una mejor experiencia de uso que la de un sitio web tradicional que utiliza un diseño responsivo. El término «aplicaciones web progresivas» fue acuñado en 2015 por la diseñadora Frances Berriman y el ingeniero de Google Chrome, Alex Russell
El objetivo de las PWA es difuminar la distinción entre las aplicaciones nativas y la web móvil llevando la mayoría de los beneficios de las aplicaciones móviles nativas al navegador móvil. Las PWA utilizan tecnologías basadas en estándares y se ejecutan en un contenedor que es seguro y accesible para cualquier persona en la web. Pueden enviar notificaciones web push, funcionar sin conexión y ser accesibles desde la pantalla de inicio, al igual que una aplicación móvil de una tienda de aplicaciones.
Las PWAs también pueden aprovechar las APIs y los plugins del navegador para garantizar que el despliegue y el mantenimiento de un sitio web siga siendo lo más sencillo posible. Otra ventaja que las PWA han heredado de los sitios web tradicionales es el uso de URI para indicar el estado. Esto permite que la aplicación web conserve o recargue su estado cuando el usuario marca o comparte la URL de la aplicación.
La interfaz de usuario de una aplicación web progresiva debe tener el tamaño correcto para el factor de forma del dispositivo y el tamaño de la pantalla. Además, debe parecerse a una aplicación nativa y estar construida sobre un modelo de shell de aplicación. La PWA debe tener pocas actualizaciones de página, y la aplicación debe funcionar en zonas de baja conectividad o incluso sin conexión. Además, los nuevos contenidos deben estar disponibles en la aplicación. Dado que las solicitudes de red pueden ser interceptadas, la aplicación debe estar alojada en HTTPS para evitar ataques de tipo man-in-the-middle ().