Plataforma cívica independiente para las elecciones de Costa Rica 2026 🇨🇷 Comparador electoral · Red social ciudadana · IA con fuentes oficiales
En época electoral, el problema no es la falta de información — es el exceso sin contexto. NOVA toma los datos oficiales del TSE y la Asamblea Legislativa y los convierte en herramientas que cualquier persona puede usar en 5 minutos: comparar propuestas por tema, verificar afirmaciones con IA, y debatir en una comunidad moderada. Sin sesgos, sin pauta, sin partido.
| Módulo | Qué hace | |
|---|---|---|
| ⚖️ | Comparador político | 7 temas, frente a frente entre partidos, mapa ideológico interactivo y análisis comparativo con IA |
| 💬 | Comunidad (DebateCR) | Posts, hashtags, tendencias, seguidores, guardados, perfiles verificados y moderación IA pre-publicación |
| 🤖 | Asistente IA | Chatbot estricto basado en documentos (PDF/TXT) y fuentes oficiales; multilingüe |
| 🔍 | Fact-checking | Veredicto en 6 niveles con barra de confianza y fuentes sugeridas |
| 🧭 | Test de afinidad | Brújula ideológica con temas de actualidad |
| 🏛️ | La Asamblea | Votaciones, asistencias y proyectos de ley |
| 📊 | Participación | Métricas abiertas por provincia, exportar CSV/PDF |
| 🔔 | Notificaciones | Generadas por el servidor (triggers), con filtros |
flowchart LR
subgraph Cliente["🖥️ SPA React 19 + Vite"]
UI[Design system<br/>tokens claro/oscuro] --> Shell[AppShell<br/>hash router + i18n es/en]
Shell --> Vistas[12 vistas<br/>lazy-loaded]
Vistas --> Servicios[Capa de servicios]
end
Servicios -->|REST| Gemini["✨ Google Gemini<br/>asistente · moderación · fact-check"]
Servicios -->|SDK| Supa["⚡ Supabase<br/>PostgreSQL + RLS · Auth · Storage"]
Supa --> Triggers["Triggers: contadores atómicos,<br/>notificaciones, auto-ocultar reportados"]
Servicios -.->|opcional| Obs["📈 PostHog · Sentry"]
Principios: los componentes nunca hablan con Supabase directamente (capa
de servicios) · los datos electorales viven en src/data/
editables sin tocar UI · los contadores los mantiene el servidor · la IA
degrada con gracia sin API key.
git clone https://github.com/josueazc/VoteOn2.git
cd VoteOn2
npm install
cp .env.example .env # completa Supabase y Gemini
npm run dev- 🗄️ Crea un proyecto en Supabase y ejecuta
supabase/migrations/00_init.sql→ guía completa en supabase/README.md - 📦 Crea el bucket público
comunidad_mediaen Storage - 🔑 Consigue tu API key en Google AI Studio
npm test # 29 tests (Vitest + RTL)
npm run build # bundle inicial ~255 kB gracias al code splittingSPA estática: funciona out-of-the-box en Vercel o Netlify
(framework Vite, build npm run build, output dist, variables VITE_*
en el panel). CI corre tests + build en cada push.
NOVA es una plataforma de confianza pública — exactamente el problema que blockchain resuelve bien cuando se usa con criterio. Ideas en evaluación:
- Anclaje de integridad: hash de cada fact-check y snapshot del comparador anclado on-chain → cualquiera puede auditar que no se editó después.
- Insignias soulbound: verificación de candidatos y embajadores como tokens intransferibles.
- Sondeos resistentes a manipulación: consultas comunitarias con commit-reveal o pruebas zk (no elecciones reales — eso es del TSE).
- Transparencia de fondos: donaciones en cripto con libro público.
Detalle y trade-offs en la sección Web3 de docs/GROWTH.md.
NOVA no recomienda votar por ningún partido. Los resúmenes del comparador son síntesis editoriales neutrales marcadas como tales; las posiciones ideológicas son estimaciones educativas. Consulta siempre los planes oficiales en el TSE antes de decidir tu voto.
Issues y PRs bienvenidos — corre npm test antes de enviar.
Plan de crecimiento y decisiones abiertas: docs/GROWTH.md.