¿Qué es una PWA (Progressive Web App)?

Actualizado: septiembre de 2026

Una PWA es una app web que usa service workers, un manifest y HTTPS para ser instalable, funcionar offline y recibir notificaciones push. Acuñado por Alex Russell y Frances Berriman en 2015, el término cierra la brecha entre un sitio web y una app instalada sin salir de la web: una sola base de código, un ícono en la pantalla de inicio, una ventana propia y una pantalla que sigue funcionando cuando el tren entra al túnel. El ángulo que este glosario agrega — y que las guías de frontend se saltan: una PWA sigue siendo un cliente — el service worker cachea, pero tu backend es la fuente de la verdad.

Puntos clave

PreguntaRespuesta
Los tres pilaresService worker · web app manifest · HTTPS
Qué agregaInstalable · funciona offline · recibe push — sobre una sola base de código
vs. sitio responsivoAgrega service worker + manifest; el layout solo no hace una PWA
vs. nativoAlcance y velocidad vs. acceso al hardware y presencia en la tienda
La verdad del backendEl caché del SW es un espejo; la API/BaaS es la autoridad

Los tres pilares, y el backend detrás de ellos

// JavaScript — the PWA's three pillars + the backend behind them
// 1 · Service worker: caches the shell, buffers writes when offline
navigator.serviceWorker.register('/sw.js');

// 2 · Manifest (public/manifest.json) makes it installable:
//    { "name": "Notes", "display": "standalone", "start_url": "/", "icons": [...] }

// 3 · HTTPS is required — service workers refuse to run otherwise.

// The catch: the SW cache is a MIRROR, not the source of truth.
// When back online, queued writes sync to the real backend:
const note = new Parse.Object('Note').set('text', draft);
await note.save(); // the BaaS is authoritative; the cache was a buffer

Un service worker es un script en segundo plano que se ubica entre la app y la red como un proxy — cachea el shell y lo sirve offline; un web app manifest es el archivo de metadatos JSON (nombre, íconos, display: standalone, URL de inicio) que hace la app instalable; y HTTPS es obligatorio, porque los service workers se niegan a correr fuera de un contexto seguro. Esos tres construyen el frente de la app. El save() en las pestañas de código muestra lo que queda detrás: el caché es un espejo, y cuando la red vuelve, la escritura se sincroniza con el backend autoritativo.

Cómo una PWA sirve una página offline

Un service worker mediando entre una PWA y su backendUna solicitud de la progressive web app pasa por el service worker, que devuelve una respuesta cacheada para uso offline o la busca en la red. Las lecturas y escrituras de datos llegan a la API del backend, que es la fuente de la verdad; las escrituras hechas offline se encolan en el caché y se sincronizan con el backend cuando vuelve la conectividad. Las notificaciones push nacen en el backend y llegan al service worker a través de un servicio de push.

cache hit

cache miss / datos frescos

escrituras offline en cola
se sincronizan al reconectar

mensaje push

UI de la PWA

Service worker
(proxy de red)

Caché
espejo local

API del backend
fuente de la verdad

Servicio de push

Una solicitud de la progressive web app pasa por el service worker, que devuelve una respuesta cacheada para uso offline o la busca en la red. Las lecturas y escrituras de datos llegan a la API del backend, que es la fuente de la verdad; las escrituras hechas offline se encolan en el caché y se sincronizan con el backend cuando vuelve la conectividad. Las notificaciones push nacen en el backend y llegan al service worker a través de un servicio de push.

Estrategias de caché offline

EstrategiaSirve desdeIdeal para
Cache-firstCaché, luego redAssets estáticos — shell, íconos, fuentes
Network-firstRed, con fallback al cachéDatos frescos que deben estar al día
Stale-while-revalidateCaché ahora, refresco en segundo planoContenido que puede quedar un instante desactualizado
Cache-only / network-onlyUna sola fuenteEsenciales precacheados / llamadas que nunca se cachean

La decisión es por recurso, no por app: el shell de la app quiere cache-first para cargar al instante; los datos vivos del usuario quieren network-first para frescura; un feed acepta stale-while-revalidate para sentirse instantáneo y corregirse solo. Elijas lo que elijas, el caché es un buffer de lectura/escritura sobre la API — las escrituras offline se encolan localmente y se reconcilian al reconectar, la misma disciplina de puesta al día que necesita cualquier cliente offline-first.

De dónde vienen realmente las notificaciones push

El mecanismo que casi ningún glosario explica, y la razón por la que una PWA necesita un backend hasta para notificar. El cliente solo se suscribe: pide permiso y recibe un endpoint de suscripción. Enviar es trabajo del servidor — tu backend → el servicio de push del navegador → el evento push del service worker → una notificación mostrada. El service worker puede despertar para mostrarla con la app cerrada, pero nada llega si un backend no lo envió — por eso “las PWA tienen push” es solo la mitad de una funcionalidad sin la mitad del servidor. La entrada de notificaciones push cubre la cadena de entrega; el punto aquí es que tanto el web push como el push nativo terminan en tu código decidiendo enviar.

PWA vs. app nativa

PWANativa
Base de códigoUna, en la webUna por plataforma (o multiplataforma)
DistribuciónUna URL — sin tiendaTiendas de aplicaciones, con revisión
ActualizacionesInstantáneas, del lado del servidorCiclo de release de la tienda
DescubribilidadIndexada por los buscadoresSolo la búsqueda de la tienda
Acceso al hardwareLimitado (varía por SO)Completo
Confiabilidad del pushBuena en Android, restringida en iOSConfiable vía APNs/FCM
Realidad en iOSInstalación solo por Safari, push desde 16.4Ciudadana de primera clase

La asimetría honesta vive en la última fila: iOS es donde las PWA son más débiles — instalación solo a través de Safari, sin prompt de instalación automático, push solo con la app instalada y solo en versiones recientes, y sincronización en segundo plano incompleta. En Android y desktop la distancia con lo nativo es pequeña; en iOS es el factor decisivo para muchos productos.

Casos de uso comunes

  • Contenido y comercio — alcance, SEO y baja fricción de instalación valen más que una descarga de tienda para llegar a usuarios nuevos.
  • Herramientas internas — apps instalables y tolerantes al offline para usuarios conocidos, sin distribución por tienda.
  • Apps de campo offline-first — captura datos sin señal, sincroniza cuando vuelve; el patrón del caché como buffer.
  • Alcance multiplataforma con poco presupuesto — una base de código web cubriendo plataformas que un build nativo triplicaría.
  • Compañera de una app nativa — el mismo backend sirviendo una PWA para alcance y una app nativa para profundidad.

¿Deberías construir una PWA? Matriz de decisión

SituaciónInclinación
Alcance, SEO, baja fricción, una base de códigoPWA
Audiencia principal en Android/desktopPWA — la distancia con lo nativo es pequeña
iOS crítico con fuerte dependencia del pushNativo, o acepta las salvedades de iOS
Gráficos pesados, AR, hardware profundoNativo
Captura de datos offline-firstPWA con un backend de sincronización
Necesitas presencia en la tiendaNativo (o PWA en tienda, donde la aceptan)

Limitaciones y trade-offs

  • iOS limita el techo. Instalación solo por Safari, push restringido y huecos en la sincronización en segundo plano hacen de iOS la restricción que más a menudo decide el duelo PWA-versus-nativo.
  • El acceso al hardware es parcial. Bluetooth, NFC, contactos y APIs avanzadas de cámara están limitados o ausentes según el SO — las apps que se hunden en el dispositivo siguen pidiendo nativo.
  • El caché no es la base de datos. Tratar el caché del service worker como fuente de la verdad invita escrituras perdidas y conflictos de datos viejos; es un buffer sobre el backend autoritativo.
  • El push es mitad cliente, mitad servidor. Suscribirse es fácil; la PWA sigue necesitando un backend para enviar, así que “offline y push” es una funcionalidad de backend con credencial de frontend.
  • La descubribilidad corta por ambos lados. Sin el peaje de la tienda tampoco hay vitrina de tienda; cambias curaduría y ceremonia de instalación por una URL.

PWAs en Back4app

Back4app es una plataforma open-source de Backend as a Service (BaaS) que combina base de datos gestionada, APIs REST y GraphQL generadas automáticamente, autenticación, almacenamiento de archivos y funciones serverless con Cloud Code. Es la mitad backend de la funcionalidad que los pilares de frontend apenas completan: el service worker cachea el shell, pero Back4app es la fuente de la verdad que ese caché espeja — usuarios autenticados, datos sincronizados que reconcilian escrituras offline al reconectar, y el servidor que de verdad envía el web push al que una PWA solo puede suscribirse. Como un solo backend sirve por igual a una PWA, una app web común y una app nativa a través de SDKs por plataforma, el alcance multiplataforma que la PWA promete en el frontend se encuentra con el alcance escribe-una-vez del backend — el cliente cachea, la plataforma recuerda, y las dos mitades de “instalable, offline y push” por fin se juntan.

Preguntas frecuentes

¿Qué es una PWA?

Una app construida con tecnologías web estándar que usa capacidades modernas del navegador para comportarse como una app instalada — ícono en la pantalla de inicio, ventana propia, soporte offline y notificaciones push — todo desde una sola base de código entregada por la web. El término lo acuñaron Alex Russell y Frances Berriman en 2015.

¿Qué convierte a una app en una PWA?

Tres piezas trabajando juntas: un service worker (un script en segundo plano que cachea los assets y habilita el uso offline y el push), un web app manifest (metadatos JSON que hacen la app instalable) y HTTPS (los service workers se niegan a correr fuera de un contexto seguro). En la práctica, la vara es: instalable y confiable sin importar la red.

¿Qué es un service worker?

Un archivo JavaScript que corre en segundo plano, en su propio hilo, actuando como proxy de red entre la app y la red. Intercepta las solicitudes y las responde desde el caché o desde la red — eso es lo que habilita el uso offline, la sincronización en segundo plano y recibir mensajes push incluso con la app cerrada.

¿PWA o app nativa: cuál es mejor?

Una PWA es más rápida y barata de construir, usa una sola base de código, se actualiza al instante, no necesita tienda de aplicaciones y aparece en los buscadores. Una app nativa tiene acceso completo al hardware, la UX más fluida, push más confiable y presencia en la tienda. Elige nativo para gráficos pesados o integración profunda con el dispositivo; una PWA para alcance y velocidad de salida al mercado.

¿Cuál es la diferencia entre una PWA y un sitio responsivo?

Un sitio responsivo solo adapta su layout al tamaño de la pantalla y necesita conexión. Una PWA agrega encima instalación, caché offline y notificaciones push. Toda PWA es responsiva, pero un sitio responsivo solo se vuelve PWA cuando suma un service worker y un manifest.

¿Las PWA pueden enviar notificaciones push?

Pueden recibir web push vía las APIs Push y Notification, pero el cliente solo se suscribe — quien envía de verdad es un backend. En iOS el soporte llegó en la versión 16.4 y solo funciona con la PWA instalada en la pantalla de inicio, así que el web push alcanza a un público más estrecho que el push nativo.

¿Las PWA funcionan offline?

Sí — el service worker cachea assets y datos, y los sirve cuando la red desaparece. Las estrategias comunes son cache-first para assets estáticos, network-first para datos que deben estar frescos y stale-while-revalidate para mostrar al instante con actualización en segundo plano. Las escrituras hechas offline se encolan y sincronizan cuando vuelve la conectividad.

¿Se puede publicar una PWA en una tienda de aplicaciones?

En parte. La tienda de Android acepta PWA empaquetadas como trusted web activities, y algunas tiendas de desktop las tratan como ciudadanas de primera clase. La App Store de Apple, en la práctica, no — las PWA que son sitios reempaquetados suelen ser rechazadas — lo que explica en parte por qué iOS sigue siendo la plataforma más difícil para las PWA.

Términos relacionados

Compara con

Lecturas recomendadas

¿Listo para construir tu backend?

Empieza tu proyecto en Back4app en minutos — base de datos, autenticación, APIs y Cloud Code incluidos. Sin tarjeta de crédito.

Escrito y revisado por Back4app Engineering, Back4app Engineering · Publicado el 2026-09-04