Centro de mando fiscal e inteligencia territorial para municipios y gobernaciones de Colombia. Dashboard de hacienda, seguimiento PDM, estatuto tributario con IA (RAG), exógena automatizada, gemelo municipal y rendición de cuentas.
Live: gobia.co · Demo fiscal: gobia.co/demo
gobia.co es el piloto web de inplux.co para el sector público colombiano. Transforma la administración pública municipal mediante inteligencia de datos, automatización fiscal y asistentes IA normativos. Dirigido a secretarios de hacienda, directores de planeación, alcaldes, gobernadores y control interno.
Producto hermano de tribai.co (sector privado tributario).
| # | Módulo | Descripción | Estado |
|---|---|---|---|
| 1 | Hacienda Dashboard | Ejecución presupuestal, recaudo, IDF, cartera morosa, inversión por sector | Demo |
| 2 | Seguimiento PDM | Tracking del Plan de Desarrollo Municipal con indicadores de avance | Demo |
| 3 | Estatuto Municipal IA | Chat RAG sobre estatutos tributarios municipales (piloto: Acuerdo 093/2023 de Medellín) | Funcional |
| 4 | Exógena Automatizada | Generación automática de información exógena DIAN en XML | Diseño |
| 5 | Gemelo Municipal | Gemelo digital del municipio con visualización geoespacial (comunas, barrios, predial, ICA) | Demo |
| 6 | Rendición Automatizada | Generación automática de reportes de rendición de cuentas para CGR/SIRECI | Diseño |
La ruta /demo presenta un dashboard fiscal completo para Medellín con:
- Mapa Mapbox persistente (panel izquierdo, 55% en desktop) — 16 comunas y 349 barrios con selección interactiva
- Panel de datos scrollable con navegación por secciones sticky
- Secciones: Resumen Ejecutivo, Pulso Fiscal, Ejecución Presupuestal, Radiografía de Recaudo, Estructura de Gasto, Cartera Morosa, IDF Deep Dive, Autonomía Financiera, TerriData
- Chat IA del Estatuto — panel deslizante con RAG sobre el Acuerdo 093/2023
- Datos en vivo de datos.gov.co (FUT, SECOP)
Pregunta → OpenAI text-embedding-3-small (1536d)
→ Pinecone query (namespace: acuerdo-093, top-k chunks)
→ GPT-4o-mini (temperature 0.1, max 1024 tokens)
→ Respuesta con citaciones de artículos
- Fuente: Estatuto Tributario de Medellín (Acuerdo 093 de 2023)
- Chunking: ~500 tokens con 50 tokens de overlap, split por párrafo/oración
- Tipos de chunk: artículo, tarifa, parámetro, listado, metadata
- Degradación graceful: fallback si faltan API keys (503 con detalle)
| Dataset | ID | Uso |
|---|---|---|
| FUT Ingresos | a6ia-xzgy |
Ejecución presupuestal |
| SECOP Integrado | rpmr-utcd |
Contratos públicos |
| SECOP II | jbjy-vk9h |
Contratos electrónicos |
| DIVIPOLA Municipios | gdxc-w37w |
Selector de municipios |
| MDM Desempeño | nkjx-rsq7 |
Dashboard IDF |
Proxy server-side en /api/datos-gov con caché de 1 hora (revalidate: 3600).
| Capa | Tecnología |
|---|---|
| Framework | Next.js 16 (App Router, Turbopack), React 19 |
| Lenguaje | TypeScript 5 (strict) |
| Estilos | Tailwind CSS v4 (CSS-first, @theme inline) |
| Animaciones | Framer Motion 12+ |
| Mapas | Mapbox GL JS 3 |
| IA — Embeddings | OpenAI text-embedding-3-small (1536d) |
| IA — Generación | GPT-4o-mini |
| Vector DB | Pinecone |
| UI | Radix UI (Dialog) + Lucide React |
| Tipografía | Plus Jakarta Sans (body) + Space Grotesk (display) |
| Deploy | Vercel |
gobia/
├── src/
│ ├── app/
│ │ ├── page.tsx # Landing (10 secciones con lazy loading)
│ │ ├── actions/contact.ts # Server Action: captura de leads
│ │ ├── api/
│ │ │ ├── datos-gov/route.ts # Proxy SODA API con caché
│ │ │ └── estatuto-rag/route.ts # Endpoint RAG
│ │ ├── demo/ # Dashboard fiscal Medellín
│ │ │ ├── page.tsx # Centro de mando principal
│ │ │ ├── exogena/ # Módulo exógena
│ │ │ ├── gemelo/ # Gemelo municipal
│ │ │ ├── hacienda/ # Dashboard hacienda
│ │ │ ├── pdm/ # Seguimiento PDM
│ │ │ └── rendicion/ # Rendición de cuentas
│ │ ├── robots.ts, sitemap.ts # SEO
│ │ └── opengraph-image.tsx # OG dinámico
│ ├── components/
│ │ ├── sections/ # 10 secciones landing (Hero → CTA)
│ │ ├── dashboard/ # 16 componentes del dashboard fiscal
│ │ ├── demo/ # EstatutoChat, EstatutoGraph, TarifasTable
│ │ ├── illustrations/ # 20 SVGs/ilustraciones
│ │ ├── layout/ # Navbar
│ │ └── ui/ # Badge, Button, Card, GradientText
│ ├── data/ # Datos estáticos (comunas, barrios, hacienda, PDM, etc.)
│ └── lib/
│ ├── rag/ # Pipeline RAG (embedder, Pinecone client, document processor)
│ ├── datos-gov.ts # Cliente SODA API
│ └── design-tokens.ts # Tokens de diseño en TS
├── scripts/
│ └── index-documents.ts # CLI para indexar Estatuto en Pinecone
├── public/
│ ├── data/ # GeoJSON (barrios, comunas, departamentos)
│ └── hero/ # Video hero (mp4 + webm + poster)
└── package.json
Paleta monocromática con acento único (ocre):
| Token | Valor | Uso |
|---|---|---|
--ink |
#2C2418 |
Texto primario, fondos oscuros |
--sepia |
#8B7355 |
Texto secundario |
--ochre |
#B8956A |
Acento único (badges, links, highlights) |
--ochre-soft |
#F5EDDF |
Fondos de acento suave |
--background |
#FAF6F0 |
Fondo neutro crema |
--paper |
#FFFDF8 |
Fondo de secciones |
OPENAI_API_KEY= # Embeddings + RAG
PINECONE_API_KEY= # Vector DB
NEXT_PUBLIC_MAPBOX_TOKEN= # Mapbox GL JS
RESEND_API_KEY= # Emails (opcional)
CONTACT_EMAIL= # Notificaciones de leadsgit clone https://github.com/Cespial/gobia.git
cd gobia
npm install
cp .env.example .env.local # Configurar variables
npm run devnpm run index-docs # Indexa Acuerdo 093/2023 en Pinecone- Ley 962/2005 (Anti-trámites)
- Resolución 111/2025 (Estándares digitales)
- NTC 5854 (Accesibilidad web)
- Ley 1581/2012 (Protección de datos)
- Lazy loading: Secciones below-fold con
next/dynamic+ skeleton placeholders - SODA API proxy: Route handler server-side con caché de 1 hora
- Server Actions: Formulario de contacto con
"use server" - Mapbox SSR disabled:
UnifiedMapcargado conssr: false - Optimización de bundles: Framer Motion tree-shaken via
optimizePackageImports - Imágenes: AVIF + WebP configurados
Proyecto privado — inplux.co
Desarrollado por Cristian Espinal Maya · gobia.co · inplux.co