Mapa de risco que chega antes da chuva
O Chuvarada cobre 28.483 bairros brasileiros com dados hidrológicos em tempo real — para que a evacuação aconteça antes, não depois.
O problema
O alerta existe. A granularidade, não.
O Brasil tem sistemas de alerta meteorológico. O que não tem é precisão de bairro: os alertas da Defesa Civil chegam por município — e quem mora numa encosta em Recife não sabe se o risco é na rua dela ou a três bairros de distância.
O que existe
CEMADEN emite alertas municipais. A Defesa Civil faz comunicados regionais. O gov.br concentra dados, mas não os traduz para quem está no local.
O que falta
Granularidade de bairro, em tempo real, acessível por qualquer pessoa pelo celular — sem login, sem instalação, sem jargão técnico.
bairros cobertos
Com score de risco calculado a cada hora, usando seis fontes de dados públicos.
Princípio de produto
Se o ponto georreferenciado estiver errado, o score de risco também estará errado — e um alerta errado é pior que nenhum alerta.
O desafio técnico (que virou decisão de produto)
O Brasil não tem centróides de bairro
O problema não era falta de dado — era incompatibilidade de dado. O Brasil organiza sua administração por distritos, não por bairros. O IBGE Censo 2022 mapeou bairros, mas sem centróides para geocodificação.
Sem centróide, não há como associar um ponto geográfico a um bairro com precisão. A solução padrão (centro geométrico do polígono) colocaria o ponto representativo do bairro em áreas desabitadas — morros, rios, terrenos vazios.
A solução
Centróide ponderado por população usando os dados do Censo IBGE 2022. O ponto representativo de cada bairro cai onde as pessoas realmente vivem, não no centro geométrico do polígono.
Por que isso importa para o produto
Se o ponto georreferenciado estiver errado, o score de risco associado àquele bairro também estará errado. Essa foi uma decisão de produto disfarçada de problema técnico — e a mais importante do projeto.
A solução
Seis fontes. Sete variáveis. Um número por bairro.
O Chuvarada combina seis fontes de dados públicos e gratuitos, atualizadas automaticamente, para calcular o risco de cada bairro a cada hora.
| Fonte | Fornecedor | O que entrega |
|---|---|---|
| MERGE/CPTEC | INPE | Precipitação por satélite + pluviômetros |
| Open-Meteo | Open-Meteo | Vento, umidade, pressão, chuva horária, umidade do solo |
| NASA SRTM | NASA | Altimetria do terreno (~30m de resolução) |
| ANA/BHO | Agência Nacional de Águas | Rede hidrográfica nacional |
| IBGE Censo 2022 | IBGE | Malha de bairros de todo o Brasil |
| TideCheck | UHSLC / FES2022 | Nível de maré real (113 de 115 cidades costeiras) |
Como o score é calculado
As sete variáveis são combinadas com pesos definidos pela relevância de cada uma para o risco de alagamento:
| Variável | Peso |
|---|---|
| Pico de chuva (3h) | 22% |
| Chuva 72h | 16% |
| Chuva última hora | 15% |
| Declividade do terreno | 14% |
| Umidade do solo | 14% |
| Proximidade hídrica | 11% |
| Maré | 8% |
Resultado
Score de 1 a 10, recalculado a cada hora, traduzido em cinco níveis: Normal / Atenção / Moderado / Alto / Crítico.
Regras automáticas de elevação para Crítico
- i. Mais de 50mm de chuva na última hora
- ii. Maré acima de 80% combinada com chuva em zona costeira
A interface
Do modelo ao mapa que qualquer pessoa lê
O modelo devolve um número. O trabalho da interface é tornar esse número legível para quem está numa encosta, no celular, sem login e sem jargão — e comunicar não só o risco, mas o porquê dele.
O card do bairro é onde design e modelo se encontram. Em vez de esconder o cálculo, ele expõe cada fator de risco com o peso que teve no score — umidade do solo, terreno, proximidade hídrica, chuva — e traduz o dado bruto em linguagem interpretável (“58% abaixo da média histórica para agosto”). Mostrar o raciocínio, em vez de entregar só o veredito, é o que constrói confiança em quem decide evacuar.
Score + cinco níveis
Número (1–10) e cor juntos: legível para quem lê pela cor e para quem compara pelo valor.
Linha do tempo com incerteza
Próximas horas e próximos dias — e a interface avisa que a previsão perde precisão com o tempo.
Fatores transparentes
Cada variável do modelo aparece com sua contribuição. O peso deixa de ser detalhe técnico e vira informação para o usuário.
Favoritar o bairro
Acompanhar onde se mora, ou onde está a família, sem conta — o essencial no celular, no momento em que importa.
Como foi construído
Seis fontes, um score por hora, um app sem loja
Um produto de escala nacional, construído e mantido por uma pessoa. O que torna isso possível é uma arquitetura enxuta e desenvolvimento assistido por IA.
Stack
Next.js + TypeScript e Tailwind na interface; Leaflet.js na cartografia; Supabase como base de dados; deploy contínuo na Vercel; PWA instalável.
Pipeline
A cada hora, as seis fontes públicas são consolidadas e o modelo ponderado recalcula o score de risco dos 28.483 bairros.
Método — Spec-Driven Development com IA
Construído solo com Spec-Driven Development e Claude Code: a especificação vem antes do código, e a IA acelera a implementação sem tirar as decisões de design e de produto das minhas mãos. É o que permite uma pessoa entregar — e manter — um produto desse porte.
Decisões de produto
O que ficou de fora — e por quê
Documentar o que foi descartado, e a razão, é o que sustenta cada escolha do modelo.
Escala numérica, não semáforo
Verde/amarelo/vermelho colapsa nuances. Um score de 4,8 e um de 7,2 aparecem iguais num semáforo — mas representam riscos completamente diferentes. A escala 1–10 comunica tendência e permite comparação histórica.
Umidade do solo como variável (14%)
É a variável mais contraintuitiva — e a mais importante em muitos cenários. Chuva leve em solo saturado gera mais alagamento que chuva forte em solo seco. Tirá-la por ser difícil de explicar seria errar a favor da simplicidade e contra a precisão.
Bairro, não município
A granularidade municipal já existe e não resolve o problema. O produto só faz sentido se a resposta for mais precisa do que o que já existe. Bairro é a proposta de valor — sem ela, não há produto.
Relatos da comunidade como validação, não como fonte primária
O dado de satélite é preciso em escala — o relato humano é preciso em local. Os dois se complementam: o modelo detecta o evento, o relato confirma onde está impactando. Inverter essa hierarquia tornaria o sistema manipulável.
Limitações honestas publicadas na plataforma
Sem dados de drenagem urbana (não existem como dado público no Brasil). Pesos sem calibração regional formal. São Paulo, Campinas e Sorocaba cobertas por distritos, não bairros. Publicar as limitações não enfraquece o produto — aumenta a confiança de quem toma decisões com base nele.
Resultado
Produto em produção. Open source.
Cobertura
28.483 bairros cobertos
Atualização
Score recalculado a cada hora
Dados
6 fontes de dados públicos integradas
Plataforma
PWA instalável — funciona como app, sem loja
Acesse o projeto
Artigos publicados no Substack (PT) e Medium (EN).
Aprendizado
Dado em tempo real sem decisão de produto é ruído. Cada variável do modelo existe porque há uma pergunta real de usuário por trás — “meu bairro está em risco agora?” — e a resposta precisa chegar antes que a pergunta se torne urgente demais.
O problema técnico mais difícil do projeto (centróides de bairro) era, na verdade, um problema de produto. Se o ponto geográfico estiver errado, o score estará errado — e um alerta errado é pior que nenhum alerta.