Volver al portfolioMartín Van Compernolle

Proyecto 04 · Extend

Extend Hub

Workspace interno de gestión y operación

Plataforma interna de Extend: tablero Kanban en tiempo real, CRM, calendario, documentación, métricas del equipo y monitoreo de servidores, con bot de Discord y agentes de IA conectados por MCP.

Origen
Extend
Estado
Sistema interno
Stack
React 19 · NestJS 11 · PostgreSQL · Socket.io · MCP · TypeScript · Prisma · Zod · Tailwind 4 · TanStack Query · Turborepo · discord.js · Docker
Captura de Extend Hub

01El problema

Extend es un equipo chico de desarrollo que necesitaba que su tablero reflejara el flujo real de trabajo, integrado con Git y GitHub, y no una lista de tareas genérica.

Las herramientas del mercado esconden lo importante para un equipo así: cuánto trabajo en curso tiene cada persona, qué está bloqueado y cuánto tarda de verdad una tarea en llegar a producción.

02La solución

  • Un tablero pensado con Kanban

    Un solo tablero para todos los proyectos, de inbox a producción, con límite de trabajo en curso por persona, un carril exprés para lo urgente y actualización en tiempo real para todo el equipo.

  • Equipo y clientes en un lugar

    CRM, calendario sincronizado con Google Calendar, publicaciones de Instagram por proyecto y documentación en Markdown, pública o privada.

  • Métricas del equipo

    Tareas creadas y completadas, comentarios y ritmo de trabajo por día y por hora, calculados solos desde el historial de las tareas.

  • Monitoreo y avisos

    CPU, memoria, disco y contenedores del servidor a la vista, mantenimiento programado, y un bot de Discord que avisa por privado cuando pasa algo en una tarea.

03Mi rol

Diseñé y desarrollé Extend Hub de punta a punta: la arquitectura, la API, el panel web, el tiempo real, el servidor MCP para agentes de IA, el bot de Discord y el despliegue. Hoy es la herramienta con la que trabaja todo el equipo de Extend.

04Arquitectura

Quién lo usa

  • Panel web (React)
  • Agentes de IA vía MCP
  • Bot de Discord

Extend Hub · API (NestJS)

  • Máquina de estados compartida (Zod)
  • Tareas, proyectos y CRM
  • Log de transiciones y métricas
  • Tiempo real con Socket.io

Datos e integraciones

  • PostgreSQL con Prisma
  • Google Calendar
  • VPS con Docker

05Galería

06Decisiones técnicas

  1. 01

    Una sola máquina de estados

    Qué movimientos puede hacer una tarjeta está definido una única vez, con Zod, y lo comparten el front y el back. El servidor valida cada transición, así nadie puede saltearse un paso del flujo.

  2. 02

    Log de transiciones desde el día uno

    Cada cambio de estado se guarda como un evento. Las métricas del equipo (tiempos de entrega, ritmo, bloqueos) salen de ese historial sin que nadie cargue horas, y es un dato que no se puede reconstruir después.

  3. 03

    Los agentes de IA también usan el tablero

    Un servidor MCP permite que agentes como Claude Code o Codex lean y muevan tareas como si fueran la persona. La IA se integra al flujo real del equipo en lugar de quedar como una herramienta aparte.

  4. 04

    Canales que no duplican reglas

    El bot de Discord no tiene lógica propia: todo pasa por la API, y cada aviso se envía una sola vez aunque el evento se procese de nuevo. Las reglas viven en un solo lugar.

  5. 05

    Una herramienta interna también tiene que dar ganas de usarla

    Glassmorphism, fondos con profundidad y animaciones cuidadas. Si el equipo la usa todos los días, que se sienta bien importa tanto como que funcione.

WhatsApp