Weatherly

Por que um app de clima precisa de BFF e cache

Engenharia · 6 min

Weatherly · 5 de julho de 2026

O Weatherly web e o Expo falam com Route Handlers do Next.js (`/api/weather`, `/api/geocode`, `/api/details`). Isso é um BFF: o browser e o celular nunca recebem a OPENWEATHERMAP_API_KEY.

Key só no servidor

Se a key fosse embutida no JS do cliente, qualquer um leria no DevTools e consumiria sua cota. No BFF, a key vive em variável de ambiente (local `.env.local`, produção Vercel).

Mesma API para web e mobile: o Expo só muda o EXPO_PUBLIC_API_BASE.

Cache ~15 minutos

Clima não muda a cada segundo. Usamos fetch com revalidate em torno de 900s. Isso reduz chamadas upstream, acelera respostas repetidas e mantém o free tier saudável — sem mentir “tempo real absoluto”.

Páginas SEO como `/clima/joao-pessoa-pb` chamam a mesma lib `fetchForecast` no servidor: HTML com temperatura real para o crawler, e um link para abrir o app interativo.

Continuar lendo