
Construir una plataforma que transcriba y analice sesiones parlamentarias en tiempo real requiere un stack tecnológico robusto y diverso. Hoy queremos compartir contigo todas las tecnologías que utilizamos y por qué las elegimos.
Frontend: La Experiencia del Usuario
SvelteKit - El Corazón de Nuestra UI
SvelteKit es nuestro framework principal para el frontend. Lo elegimos por su rendimiento excepcional, su sintaxis limpia y su capacidad de generar código optimizado. Con Svelte 5, aprovechamos las nuevas runes para un manejo de estado más eficiente.
Tailwind CSS - Diseño Consistente y Rápido
Tailwind CSS nos permite crear interfaces modernas y responsivas de manera eficiente. Su enfoque utility-first acelera el desarrollo y mantiene la consistencia visual en toda la plataforma.
Componentes de UI Avanzados
- Bits UI: Componentes accesibles y sin estilos que personalizamos
- Lucide Svelte: Iconografía consistente y moderna
- GSAP: Animaciones fluidas y profesionales, especialmente en nuestro pipeline técnico
- D3.js: Visualizaciones de datos complejas para análisis parlamentarios
Base de Datos y ORM
PostgreSQL - Robustez y Escalabilidad
PostgreSQL es nuestra base de datos principal. Su soporte para JSON, búsquedas de texto completo y escalabilidad horizontal la convierten en la elección perfecta para manejar grandes volúmenes de transcripciones.
Drizzle ORM - Type Safety y Performance
Drizzle ORM nos proporciona type safety completo mientras mantiene el control sobre las consultas SQL. Su enfoque “thin ORM” nos permite optimizaciones específicas sin sacrificar productividad.
Búsqueda Inteligente
Meilisearch - Búsqueda Rápida y Relevante
Meilisearch potencia nuestro motor de búsqueda. Su capacidad de búsqueda typo-tolerant y indexación rápida permite a los usuarios encontrar contenido parlamentario específico en milisegundos.
Implementamos un sistema de chunking inteligente que divide las transcripciones largas en fragmentos de 1000 caracteres, respetando los límites de oraciones para mantener el contexto.
Procesamiento de Audio y Video
FFmpeg - El Corazón del Procesamiento de Audio
FFmpeg es fundamental para todo nuestro pipeline de audio:
- Conversión de formatos de audio
- Eliminación de silencio para mejorar transcripciones
- Concatenación de fragmentos de audio en tiempo real
- Procesamiento de streams en vivo
youtube-dl-exec - Extracción de Audio
youtube-dl-exec nos permite extraer audio de transmisiones en vivo de YouTube con la opción --live-from-start
, crucial para capturar sesiones parlamentarias desde el inicio.
Puppeteer - Scraping Dinámico
Puppeteer maneja el scraping de sitios web complejos, especialmente para extraer URLs de streams .m3u8 de sitios con contenido dinámico.
Inteligencia Artificial
OpenAI - Transcripción y Análisis
Utilizamos múltiples modelos de OpenAI:
- GPT-4o-transcribe: Nuestro modelo principal de transcripción con contexto parlamentario optimizado
- GPT-4o-mini-transcribe: Modelo de respaldo para casos edge
- GPT-4: Para fusionar transcripciones múltiples y generar resúmenes inteligentes
Google Cloud Speech & Gladia - Transcripción Múltiple
Implementamos un sistema de transcripción múltiple que combina:
- Google Cloud Speech: Transcripción robusta y rápida
- Gladia: Transcripción especializada con vocabulario personalizado
- ElevenLabs: Transcripción de alta calidad (disponible bajo demanda)
Google Gemini - Chat Inteligente
Gemini 2.5 Pro potencia nuestro sistema de chat que permite a los usuarios consultar datos parlamentarios de manera conversacional.
Almacenamiento y CDN
AWS S3 - Almacenamiento de Audio
AWS S3 almacena todos nuestros archivos de audio de manera segura y escalable, con integración directa desde nuestro pipeline de transcripción.
Google Cloud Storage - Backup y Redundancia
Google Cloud Storage proporciona redundancia y backup para archivos críticos.
Orquestación y Workflows
n8n - Automation Visual
n8n gestiona nuestros workflows complejos de transcripción, permitiendo:
- Orquestación visual de procesos
- Manejo de errores robusto
- Integración con múltiples APIs
- Monitoreo en tiempo real
PM2 - Gestión de Procesos
PM2 con @pm2/io gestiona nuestros procesos de scraping y transcripción, proporcionando:
- Reinicio automático en caso de errores
- Monitoreo de recursos
- Logs centralizados
Node Cron - Tareas Programadas
node-cron ejecuta tareas programadas como:
- Scraping de citaciones parlamentarias
- Limpieza de archivos temporales
- Mantenimiento de índices de búsqueda
Scraping y Monitoreo
Cheerio - Parsing HTML
Cheerio facilita el parsing de HTML del lado del servidor para extraer información de sitios web parlamentarios.
Selenium WebDriver - Automatización Compleja
Selenium WebDriver maneja casos de scraping que requieren interacción compleja con JavaScript.
Axios - HTTP Client
Axios es nuestro cliente HTTP principal para todas las comunicaciones con APIs externas.
Comunicaciones y Notificaciones
Resend & MJML - Emails Profesionales
- Resend: Servicio de email confiable
- MJML: Templates de email responsivos y profesionales
Telegram Bot API - Alertas en Tiempo Real
node-telegram-bot-api envía notificaciones críticas del sistema a nuestro equipo técnico.
WebSockets - Comunicación en Tiempo Real
ws proporciona actualizaciones en tiempo real a los usuarios sobre el progreso de transcripciones.
Análisis y Monitoreo
PostHog - Analytics de Producto
PostHog nos ayuda a entender cómo los usuarios interactúan con la plataforma y optimizar la experiencia.
Paddle - Gestión de Suscripciones
Paddle.js maneja nuestro sistema de suscripciones y pagos de manera segura.
Desarrollo y Tooling
TypeScript - Type Safety en Todo el Stack
TypeScript garantiza type safety desde el frontend hasta los scripts de backend, reduciendo errores y mejorando la productividad del equipo.
Vite - Build Tool Rápido
Vite proporciona hot module replacement ultrarrápido durante el desarrollo y builds optimizados para producción.
ESLint & Prettier - Calidad de Código
Mantenemos un código consistente y de alta calidad con herramientas de linting y formateo automático.
MDSvex - Contenido Dinámico
MDSvex permite escribir contenido en Markdown con componentes Svelte embebidos, perfecto para nuestro sistema de blog.
Utilidades y Helpers
Date-fns - Manejo de Fechas
date-fns con localización en español maneja todas nuestras operaciones con fechas de manera eficiente.
Lodash-es - Utilidades JavaScript
lodash-es (versión ES modules) proporciona utilidades de programación funcional optimizadas.
Zod - Validación de Esquemas
Zod valida datos de entrada y APIs con type safety completo.
Marked - Procesamiento Markdown
Marked procesa contenido Markdown para documentación y contenido dinámico.
Pipeline de Transcripción: Arquitectura en 3 Capas
Nuestro sistema de transcripción funciona con una arquitectura de 3 capas:
🔌 The Scrapper (El Recolector)
Extrae audio de diferentes fuentes (YouTube Live, Senado de Chile, etc.) y genera mini-chunks de audio.
🗜️ The Builder (El Constructor)
Combina mini-chunks en chunks optimizados para transcripción, eliminando silencios y manteniendo timestamps precisos.
📝 The Transcriber (El Transcriptor)
Utiliza múltiples proveedores de IA para transcribir y fusiona los resultados con LLMs para máxima calidad.
Por Qué Esta Stack
Cada tecnología fue seleccionada cuidadosamente para resolver desafíos específicos:
- Rendimiento: SvelteKit y Vite para carga rápida
- Escalabilidad: PostgreSQL y Meilisearch para manejar grandes volúmenes
- Calidad: Múltiples proveedores de IA para transcripciones precisas
- Confiabilidad: PM2 y n8n para procesos robustos
- Experiencia: GSAP y Tailwind para interfaces fluidas
- Mantenibilidad: TypeScript y Drizzle para code quality
El Futuro
Continuamente evaluamos nuevas tecnologías para mejorar nuestra plataforma. Próximamente exploraremos:
- Nuevos modelos de IA para transcripción
- Optimizaciones de performance con Rust
- Mejoras en real-time processing