Entre 2017 e 2020, a PWA foi um hype tecnológico. Conferências, artigos de blogue, apoio oficial da Google e da Microsoft. Depois veio a desilusão — o iOS manteve fechadas as APIs essenciais, os pedidos de instalação revelaram-se confusos e o marketing das aplicações nativas continuava a ser mais forte. A comunidade seguiu em frente, rumo ao Flutter, ao React Native e ao Capacitor.
Mas algo mais aconteceu em surdina. A stack das PWA continuou a amadurecer. Nos últimos anos, a Apple acrescentou as APIs em falta, os browsers melhoraram o processo de instalação e a especificação dos service workers estabilizou. E, para equipas de produto sem grande orçamento, a PWA tornou-se uma opção surpreendentemente forte.
Este artigo é um estudo de caso honesto da trefa.app — uma liga de prognósticos para empresas construída como PWA — ao fim de um ano em produção. O que funcionou, o que não funcionou e a quem recomendaria a PWA hoje.
Contexto: o que é a trefa.app
A trefa.app é uma aplicação web para ligas de prognósticos de empresa. O utilizador inicia sessão com a Google, cria uma liga para a sua empresa, convida os colegas através de um link ou de um código QR e, juntos, fazem prognósticos sobre os resultados dos jogos. A aplicação sincroniza os dados a partir de APIs desportivas (NHL, Premier League, campeonatos do mundo) e recalcula os pontos em tempo real.
O frontend é em Next.js 16 + React 19 + Tailwind, alojado na Vercel. O backend é em Django 5 + DRF + Channels, no Hetzner. Pelo meio, PostgreSQL na Supabase e Redis para a comunicação em tempo real.
Um pormenor agradável: não existe qualquer aplicação nativa para iOS ou Android. A PWA é o único cliente. Os utilizadores em iPhone, Android, Windows e macOS usam exatamente a mesma coisa.
Porque é que escolhemos PWA em vez de nativo
A decisão foi, em grande parte, económica. Uma aplicação nativa teria significado:
- Desenvolver dois clientes em paralelo (iOS em Swift + Android em Kotlin), ou uma framework multiplataforma (Flutter, React Native).
- Processo de submissão na App Store + Google Play — taxas de submissão, atrasos na revisão, republicação periódica sempre que a API do backend muda.
- Notificações push através do APNs e do FCM, duas infraestruturas distintas, dois processos de certificação distintos.
- Fluxo de atualização através das lojas — o utilizador tem de atualizar ativamente, e uma parte fica meses presa numa versão mais antiga.
Para um produto com um público-alvo relativamente pequeno (equipas de empresa, não o mercado de massas), o custo do desenvolvimento nativo era significativamente mais elevado do que o benefício. A PWA eliminou todos estes pontos de uma só vez.
Vantagens técnicas que os utilizadores nunca vão notar
Esta é a parte que eu teria subestimado antes de pôr o produto em produção. Do ponto de vista do desenvolvimento, a PWA traz uma série de vantagens concretas que poupam semanas de trabalho por ano:
O deploy é instantâneo. Push para o main → a Vercel faz o build → em 2 minutos a nova versão está à frente de todos os utilizadores. Sem submissão, sem espera, sem fazer malabarismos com a compatibilidade entre as versões do cliente e do backend. Se introduzir uma breaking change na API, no dia seguinte posso lançar uma correção e toda a gente a tem de imediato.
Uma única base de código para tudo. iOS, Android, Windows, macOS, Linux — a mesma aplicação em todo o lado. Sem bugs específicos de plataforma ("isto só rebenta no iPhone 13 em modo escuro"), sem implementações duplicadas.
Caminho curto até ao utilizador. Envias um link, a pessoa clica, está na aplicação. Sem aquele "descarrega a nossa aplicação na App Store, regista-te e depois inicia sessão". Para produtos B2B de utilização pouco frequente (uma liga de prognósticos só funciona durante um torneio desportivo), isto é uma enorme vantagem em termos de conversão.
As notificações push funcionam mesmo sem instalação. O service worker regista a subscrição de push. Assim que o utilizador clica em "Permitir notificações", começa a receber alertas antes dos jogos, independentemente de ter adicionado a aplicação ao ecrã inicial ou de apenas a abrir ocasionalmente no Safari.
O que a PWA não consegue fazer (a parte honesta)
Aqui a honestidade importa mais do que o marketing. A PWA tem limites reais com os quais nos deparámos em produção.
As notificações push no iOS vêm com letras miudinhas. O Apple Web Push existe desde o iOS 16.4, mas só funciona se o utilizador tiver adicionado a PWA ao ecrã inicial. Se usar a aplicação através de separadores do Safari, a subscrição de push não persiste. É um atrito que as aplicações nativas não têm.
Falta a presença na App Store. Para alguns perfis de comprador (departamentos de RH, gestores de TI em grandes empresas), "não está na App Store" equivale a "não é coisa séria". Subjetivo, mas real.
Algumas APIs do sistema operativo não estão disponíveis. Bluetooth Low Energy, NFC, acesso total ao sistema de ficheiros — para uma aplicação típica isto não é problema, mas, se precisares destas funcionalidades, a PWA limita-te.
O modo offline é possível, mas não é automático. O service worker tem de ser configurado manualmente, as estratégias de cache têm de ser desenhadas e as filas de sincronização têm de ser implementadas. Para uma aplicação totalmente offline-first, isto dá mais trabalho do que os programadores imaginam.
Benchmark de desempenho vs. nativo: a PWA é ~15–25 % mais lenta no primeiro carregamento (parsing do bundle de JS) e ~5–10 % nas interações do dia a dia. Para a maioria das aplicações é impercetível; para jogos hardcore ou edição de vídeo, é um fator eliminatório.
Resultados ao fim de um ano em produção
Dados concretos da trefa.app ao fim de um ano em funcionamento:
- Estabilidade multiplataforma — uma equipa de desenvolvimento de uma só pessoa mantém a aplicação em todos os sistemas operativos sem bugs específicos de plataforma. O mesmo ciclo de testes para todos.
- Frequência de deploys — em média, 3 a 5 deploys por semana através da Vercel. Nenhum deles a lidar com atrasos de submissão na App Store.
- Notificações push — ~70 % dos utilizadores ativos, com uma taxa de entrega de push de ~95 % no Android e ~85 % no iOS (por causa da exigência de instalação no ecrã inicial).
- Sem taxas da App Store — poupança de cerca de 70 USD por ano em contas de programador, além de cerca de 30 % de comissão sobre as transações (que, de outra forma, se aplicaria às compras dentro da aplicação).
O principal benefício para o negócio, no entanto, não foi técnico. Foi a velocidade de iteração. Se um cliente escrevia "esta funcionalidade dava-me jeito", normalmente começava a trabalhar nela nesse mesmo dia e lançava-a ainda dentro dessa semana. Isso, com uma aplicação nativa, é simplesmente impossível.
A quem recomendaria a PWA hoje
A PWA encaixa bem se pelo menos dois dos seguintes pontos se verificarem:
- Tens recursos limitados e não podes dar-te ao luxo de duas aplicações nativas mais uma versão web.
- Os teus utilizadores usam a aplicação ocasionalmente (não todos os dias), por isso o baixo atrito na primeira abertura é importante.
- A tua aplicação não precisa de APIs hardcore do sistema operativo (Bluetooth, NFC, sistema de ficheiros completo).
- Queres lançar sem as lojas de aplicações pelo caminho.
- O teu público é misto — iOS mais Android, telemóvel mais computador.
Por outro lado, a PWA provavelmente não será a escolha certa se:
- A tua aplicação corre todos os dias, várias horas por dia, e os utilizadores usam-na intensivamente (redes sociais, mensagens).
- Precisas de integrações avançadas com o sistema operativo.
- Os teus compradores esperam uma presença na App Store.
- O desempenho é crítico (jogos, vídeo, RA).
Conclusão
O hype da PWA talvez tenha acabado, mas a tecnologia cresceu, sem alarido, até um ponto em que, para muitos produtos, é uma escolha melhor do que partir para o desenvolvimento nativo. A trefa.app está em PWA há um ano e não vejo motivo para mudar. Pelo contrário — se começasse de novo hoje, avançaria ainda mais depressa.
Se estás a ponderar entre uma PWA e uma aplicação nativa para o teu projeto, tem em conta uma coisa para além dos argumentos técnicos: a PWA leva-te mais depressa até à produção. E, nas fases iniciais, a velocidade de iteração vale mais do que qualquer outra coisa.
Já agora, podes experimentar a trefa.app tu mesmo — sem instalação, basta um clique e já estás a fazer prognósticos.
