1

Como construí um agregador de dados dos 5 presidenciáveis com Next.js

Passei as últimas semanas construindo o presidenciaveis-2026.vercel.app, um agregador não-partidário com perfil completo dos 5 candidatos à presidência: Lula, Flávio Bolsonaro, Renan Santos, Caiado e Zema. O código está aberto: github.com/rcarubbi/presidenciaveis-2026.

O problema: Dados eleitorais no Brasil são fragmentados. TSE tem formato próprio, institutos de pesquisa publicam PDF, YouTube tem APIs separadas. Cada fonte tem estrutura e confiabilidade diferentes.

Solução em camadas:

  1. Dados estáticos dos candidatos em TypeScript puro — perfil, carreira, posicionamento político, escândalos, financiamento. Cada campo usa o tipo DataValue<T> que força { value, source (URL), updatedAt }. Nada aparece sem referência.

  2. API SapiensLabs (eleicoes2026.sapienslabs.com.br/api/v1) para cobertura jornalística — série histórica de sentimento, artigos por candidato, top fontes e tópicos. Um proxy Next.js com revalidate de 5 min.

  3. Dados TSE com parser próprio — o CSV de pesquisas eleitorais do TSE tem peculiaridades (encoding, campos ausentes, delimitadores). Um serviço dedicado normaliza tudo.

  4. 95 vídeos do YouTube embedados por categoria (entrevistas, debates, campanha). Extração manual dos IDs com verificação.

Features que deram mais trabalho:

  • Comparador lado a lado — renderizar dois candidatos com as mesmas seções sincronizadas por abas exigiu componentização cuidadosa. Aprendi que composição com children ganha de props booleanas.
  • Dados de pesquisa duais — toggle entre institutos privados (Datafolha, Quaest, AtlasIntel, Real Time Big Data) e dados oficiais do TSE, com gráficos Recharts de 1º/2º turno, rejeição, espontânea e regional.
  • 5 candidatos × 9 seções de conteúdo estático. Geração estática com generateStaticParams.

Feedbacks são bem-vindos, especialmente de quem já lidou com dados governamentais ou multi-fonte. Como vocês estruturariam a camada de dados?

Carregando publicação patrocinada...
1

Cara assim, eu entendo a ideia, e até a necessidade, mas você tem que filtrar muito algumas coisas, especialmente questão de ideologia, muita gente fala muita coisas que não corresponde aos fatos:

  • Não existe "direita conservadora" ou "esquerda conservadora", conservadorismo se opõe ao progressismo, é ambidestro
  • O mesmo vale para "liberal"

Mas o que mais me preocupa são algumas definições por exemplo:

  • Lula, você o descreve como "Esquerda / Social-democrata", tanto na prática quanto por autoafirmação Lula se descreve como nunca tendo sido de esquerda e sendo principalmente de centro ou pelo menos almejando o centro sendo que como pode verificar nos links ele mesmo considera esquerdistas problemáticos, claro, seu partido (PT) é de esquerda mas ele mesmo não é
  • De forma similar você classifica Flávio Bolsonaro como extrema-direita, isso é um problema grave porque no Brasil extrema-direita é "rótulo pra tudo que é ruim" e curiosamente você também o classifica como "Direita conservadora", as duas classificações são autoexcludentes, por exemplo a aproximação com os EUA e com Israel complicam a definição como "extrema-direita" porque isso é antichauvinista enquanto a extrema-direita por definição é antichauvinistas, a maioria do "extrema-direita" se baseia em preceitos como "ataque a instituições democráticas e a imprensa", porém o Flavio Bolsonaro se mostra amistoso com a maioria dos canais e veículos de imprensa, tendo uma richa particular com a Globo e as instituições criticadas são principalmente ligadas ao judiciário que existe um debate acadêmico sobre ser ou não democrático já que não são eleitos diretamente e tem mandato praticamente vitalício
  • Renan Santos se fundamenta na Nova Direita Milenalista (https://www.youtube.com/watch?v=fZlo3fybIAU) o que tecnicamente apesar de não gostar, o coloca como centro-direita, essa é a única ressalva aqui
  • Ronaldo Caiado curiosamente não tem nada fora da curva

Wikipédia é uma péssima fonte para políticos, especialmente classificação deles, recomendo fazer buscas em ambientes realmente neutros, outro detalhe importante é sua classificação bínaria para algo trinário, a classificação deveria ser:

  • Ativo (Investigação)
  • Resolvido (Rejeitado e Arquivado)
  • Anulado

Anulado não está ativo, mas também não está resolvido