Sistemas que corren en producción con usuarios y clientes reales — no demos. Cada tarjeta enlaza al deploy o al repositorio público.
Plataforma de marca blanca para organizar eventos de punta a punta: página pública por organizador, boletas con QR firmado (JWT), control de puerta con reingreso y motivos de rechazo, prellenado del registro por cédula, impresión de escarapelas, carné digital, equipos con roles, pagos con Mercado Pago y registro embebible por iframe. Con ella se operó FESTECH Ibagué 2026 para la Alcaldía de Ibagué: 4.485 boletas y 3.334 ingresos en tres días, con picos de 67 ingresos en 5 minutos por una sola puerta. Un conector OAuth2 (PKCE) + MCP permite operarla desde un asistente de IA, y la respaldan más de 1.800 pruebas automatizadas.
Arquitectura: SPA React 18 + Vite (PWA) → API Express (Node 20) en cPanel →
PostgreSQL en Supabase (Auth, Storage, Realtime, RLS). Build en GitHub Actions publicado a
una rama deploy. Antes: Vercel + Render (hasta sep. 2026). Salida de
Supabase a una base propia en curso.
Sitio del grupo de desarrollo que cofundé y dirijo como CEO. Construido sobre Next.js 16 (App Router)
y React 19: el símbolo es un orbe SVG animado con un anillo de nueve capas de color a
velocidades distintas, y la sección de equipo reacciona al hover con un gesto de 620 ms.
Todo con animación CSS, contenido editable por datos, navegación por teclado y soporte
de prefers-reduced-motion.
Plataforma para un consultorio de medicina estética en Ibagué: sitio público bilingüe (es/en), catálogo de procedimientos, agendamiento en línea, cuentas con roles, consentimiento informado con firma electrónica guardado en almacenamiento privado, panel administrativo con analítica de ingresos y un copiloto de IA que edita el contenido por chat o voz. Auditoría de seguridad con 4 fallos críticos corregidos. En integración: servidor MCP con OAuth y confirmación humana, CSP con CI y la autorización de datos de salud de la Ley 1581.
Arquitectura: Next.js 16 en Vercel → API Express en Railway → PostgreSQL 18 en Neon con SQL directo (sin SDK de proveedor) + archivos en Cloudflare R2. Auth propia: JWT en memoria, refresh rotativo en cookie httpOnly, argon2id y Google OAuth. Antes: Supabase (base, auth y storage) hasta sep. 2026.
Sistema completo de gestión para una empresa colombiana de alimentación canina natural. Panel administrativo sin framework con métricas en tiempo real, ciclo de vida completo del pedido (pendiente → pagado → enviado → entregado), descuento automático de stock al despachar, etiquetas de envío en PDF y export CSV. "Diana", agente autónomo en WhatsApp, cierra ventas de punta a punta: saludo, cálculo de ración, cotización, confirmación y verificación de pago. Un flujo diario en n8n calcula el agotamiento estimado por pedido y avisa 3 días antes.
Plataforma de rifas online para la comunidad del Caballo Colombiano de Paso, en producción bajo dominio propio: paquetes de boletas, doble modo de sorteo, reserva de números, comprobante de pago por WhatsApp con confirmación del administrador y liberación automática de reservas vencidas.
Arquitectura: SPA Angular 21 servida como estático en Hostinger → Supabase:
PostgreSQL con RLS y funciones RPC, Auth, Edge Functions en Deno y pg_cron;
correo con Resend. Antes: Angular 17 con SSR y checkout de Stripe, reemplazados
por la confirmación manual del pago.
API REST modular para videojuegos bajo Screaming Architecture: el código se organiza por módulos de dominio (auth, inventario, progreso) y no por capas técnicas. Autenticación JWT, inventario con ítems únicos y apilables, historial de niveles y puntaje, respuestas JSON estandarizadas y documentación Swagger/OpenAPI.
Servicio independiente que renderiza y envía las plantillas de correo diseñadas dentro
de GESTEK. El backend delega vía clave compartida (x-gestek-key) y el
servicio resuelve plantilla + entrega SMTP. Campañas segmentadas por equipo o tipo de
boleta, healthcheck /healthz y diagnóstico SMTP para evitar bucles de
reinicio en Render cuando el proveedor de correo falla. Hoy GESTEK envía el correo desde su
propio backend (SMTP con reparto entre buzones), así que este servicio quedó como prototipo.
Espacio de trabajo para equipos de desarrollo: canales, voz y video cifrados de extremo a extremo (malla WebRTC), tareas, ventas, bóveda de credenciales y un servidor MCP para que agentes de IA trabajen directamente sobre el tablero. Cada organización queda aislada en la base con Row Level Security, con pruebas de fugas entre organizaciones en CI.
Arquitectura: monorepo npm → API Fastify + WebSocket propio en Railway → PostgreSQL 17 con RLS (rol de aplicación sin privilegios de dueño) y almacenamiento S3/MinIO; web Next.js 15 en Cloudflare Workers. Docker para el entorno local y migraciones con checksum.
Registro de entrenamiento que cruza la semana del usuario con su gimnasio y representa la constancia con una llama. Funciona sin conexión, busca sin tildes en un catálogo de 136 ejercicios y sugiere con un motor de reglas determinista, sin modelo de lenguaje.
Arquitectura: Expo Router con salida web + React 19 → SQLite WASM sobre OPFS como fuente
de verdad ("el teléfono manda, la nube copia") → API Express 5 + Zod → PostgreSQL como copia.
Esquema en Drizzle para los dos dialectos, verificado con db:check.
Plataforma de gestión de inventario para la boutique Piel Canela, construida sobre Clean Architecture: backend Node/Express con MongoDB y frontend Vue 3 separados, para que el dominio no dependa del framework.
Tutor conversacional para practicar español, inglés y francés: corrige dentro de la conversación, recuerda la sesión, busca en la web para responder con contexto y acepta voz como entrada. La respuesta se lee en voz alta desde el navegador.
Arquitectura: página HTML → API FastAPI → Groq (Llama 3.1 8B) con un prompt de tutor por idioma; RAG con búsqueda web guardada en ChromaDB (sentence-transformers); memoria de conversación en SQLite; voz con faster-whisper local (opcional).
Plataforma móvil para una institución universitaria que digitaliza las actividades del campus (charlas, debates, laboratorios, eventos de la comunidad) y plantea una nueva economía basada en puntos positivos: quien participa los gana, los acumula en su billetera y compite en un ranking. Incluye registro de asistencia por QR, billetera con historial y el asistente Ardy.
Arquitectura: app Expo / React Native con Expo Router (Android, iOS y web) → API Express. Cada movimiento de puntos se registra en un libro encadenado por hash (blockchain simulada) para que el historial no se pueda alterar sin que se note.
Propuesta de desarrollo para un procesador de café que quedó en fase beta: maestro de lotes, proveedores, trazabilidad en 7 etapas (ingreso, trilla, tueste, cata, empaque, despacho e inspección) con un PDF por etapa y otro completo, inventario por movimientos y ranking de calidad de taza por lote y proveedor.
Arquitectura: SPA React 19 + Vite → API REST Express → MySQL; reportes en PDF generados en el servidor con pdfkit.