Presidenciáveis 2026: o que mudou no app comparativo apartidário das eleições nos últimos 5 dias
presidenciaveis-2026.vercel.app | github.com/rcarubbi/presidenciaveis-2026
Há cinco dias o Presidenciáveis 2026 era um protótipo com 3 candidatos (Lula, Flávio, Renan) e dados mornos. Hoje são 5 candidatos completos, cada um com perfil, propostas em 12 áreas, dezenas de vídeos categorizados por mês, cobertura jornalística via API, push notification e um redesign do zero.
Segue o changelog dos destaques.
1. Arquitetura de dados: de monolito a módulos
Antes: um candidates.ts de 3.146 linhas. Uma edição quebrava tudo.
Agora: cada candidato tem seu próprio arquivo (lula.ts, flavio.ts, renan.ts, caiado.ts, zema.ts), com propostas separadas (proposals-*.ts), mídia separada (media-*.ts), tudo tipado e importado por um index.ts enxuto.
Impacto prático: atualizar um candidato não mexe nos outros. Dá para abrir PRs paralelos sem conflito.
2. Três novos candidatos
O site saiu de 3 para 5 presidenciáveis:
| Candidato | Partido | Número |
|---|---|---|
| Lula | PT | 13 |
| Flávio Bolsonaro | PL | 22 |
| Renan Santos | Missão | 44 |
| Ronaldo Caiado | PSD | 55 |
| Romeu Zema | NOVO | 30 |
Cada um com biografia, carreira, posicionamento ideológico, escândalos de corrupção, financiamento de campanha e diversos videos.
3. Cobertura jornalística (Sapiens Labs)
Integração com a API eleicoes2026.sapienslabs.com.br via proxy próprio (/api/sapiens/[...path]).
O sistema traz para cada candidato:
- Sentimento da cobertura (positivo/negativo/neutro)
- Artigos recentes
- Top fontes
- Tópicos mais frequentes
- Evolução temporal (gráfico de linhas)
Tudo cacheado por 5 minutos para não sobrecarregar a API.
4. Push notification
Se você quer ser avisado quando novos dados entrarem, o site agora tem notificações push com service worker. Funciona no Chrome/Edge/Android. Sem app, sem extensão — só clicar "ativar notificações" e pronto.
5. Redesign visual
O layout foi reescrito do zero. Resultado final:
- Hero com foto, partido, número estilizado, idade e cargo
- Número do partido em destaque no card e no hero
- Selos de status nos vídeos (Visto, assistindo) com ícones
- Modo comparativo reformulado: selecione os candidatos e veja lado a lado propostas, posicionamento e mídia
- Gráficos: pesquisa eleitoral com pizza, barras agrupadas, barras horizontais e linhas (Recharts)
- Toaster de notificações in-app (sonner)
6. Fontes validadas
Cada dado no site tem URL de origem + data de verificação. Diariamente eu rodo um processo para revalidar as fontes e adicionar novas informacöes/vídeos para cada candidato.
Sistema de skills no OpenCode para automatizar a validação.
7. Infraestrutura
- npm → pnpm: migração do gerenciador de pacotes (lockfile 7k linhas a menos)
- Vercel Web Analytics + Speed Insights: monitoramento de performance e tráfego
- Next.js 16 + React 19 + Tailwind 4 + TypeScript ~6
- Oxlint no lugar de ESLint (mais rápido)
- Service worker para push + cache de assets
8. Scripts de automação
Dois scripts que rodam na esteira:
scripts/fetch-candidate-news.ts— busca notícias recentes dos candidatosscripts/fetch-youtube-videos.ts— sincroniza vídeos do YouTube por playlist
O projeto é open source (MIT), apartidário e sem fins eleitorais (Art. 57-B Lei 9.504/97). Contribuições são bem-vindas.
presidenciaveis-2026.vercel.app: veja o resultado ao vivo.