Un resumen anual de tu trabajo, al estilo Spotify Wrapped, siéntete orgulloso de lo que has currado, y de lo que no 🙃
La idea
Todos los años, cuando llega el Spotify Wrapped, acabamos compartiendo estadísticas que nunca habíamos pedido… pero que nos encanta ver.
Y como casi todo lo que hago últimamente gira alrededor de ClickUp, me surgió la pregunta:
¿Y si pudiéramos tener un “Wrapped” de nuestro trabajo?
De ahí nace ClickUp Wrapped: un pequeño portal donde, conectando tu cuenta de ClickUp, puedes generar un resumen visual de tu actividad (tareas, estados, tiempos, etc.) y compartirlo fácilmente.
No es un producto grande ni complejo. Es un experimento. Un proyecto de laboratorio.
El origen: algo solo para el equipo
La primera versión no tenía ninguna ambición pública.
Era un script local, pensado únicamente para el equipo:
- Conectar a la API de ClickUp
- Sacar algunas métricas interesantes
- Mostrar un resumen visual sencillo
Nada más.
Sin login, sin base de datos, sin usuarios.
Solo código, una API Key y curiosidad.
Pero cuando lo compartí internamente, pasó lo inevitable:
“¿Esto lo puede usar más gente?”
De script local a mini SaaS
Ahí fue cuando decidí darle una vuelta y convertirlo en algo reutilizable.
La idea era clara:
- Que cualquiera pudiera generar su ClickUp Wrapped
- Sin registros
- Sin almacenar datos sensibles
- Manteniendo el proyecto lo más simple posible
Así que el enfoque fue:
Configuras → generas → compartes → listo
Cómo funciona (flujo general)
El flujo del proyecto es bastante directo:
- El usuario introduce:
API_KEYde ClickUp- Algunos datos de configuración (workspace, fechas, etc.)
- El sistema:
- Consulta la API de ClickUp
- Procesa los datos en tiempo real
- Se genera el Wrapped:
- Métricas
- Pantallas tipo “story”
- Resumen visual
- Opcionalmente:
- Se genera una versión estática en HTML
- Lista para compartir sin volver a regenerar nada
Este último punto es clave.
Compartir sin recalcular todo
Uno de los problemas que quería evitar era:
- Reconsultar la API constantemente
- Volver a procesar los datos cada vez que alguien comparte su Wrapped
La solución fue simple y efectiva:
Cuando el usuario decide compartir su Wrapped, el sistema:
- Renderiza el resultado final
- Genera un HTML estático
- Lo guarda como una página independiente
De esta forma:
- El enlace es rápido
- No depende de la API
- No expone la API Key
- No hay cálculos repetidos
Es literalmente una “foto” del Wrapped en ese momento.
Stack técnico
Nada raro, nada de moda innecesaria.
El stack es deliberadamente sencillo:
- PHP
- Conexión con la API de ClickUp
- Procesado de datos
- Generación del HTML final
- JavaScript
- Interacciones
- Navegación tipo “slides / stories”
- CSS
- Estilos
- Animaciones simples
- Sin base de datos
- Ni usuarios
- Ni sesiones persistentes
- Ni almacenamiento de datos personales
Todo vive en memoria o en archivos estáticos cuando se comparte.
¿Por qué sin base de datos?
Fue una decisión consciente.
Para este proyecto:
- No necesito persistencia compleja
- No quiero gestionar usuarios
- No quiero almacenar tokens
- No quiero aumentar superficie de problemas
Menos piezas = menos mantenimiento.
Además, encaja perfectamente con la filosofía del proyecto:
Genera → disfruta → comparte → desaparece
Lo que más me gustó del proyecto
Más allá del resultado, lo interesante fue el proceso:
- Empezó como una herramienta interna
- Evolucionó de forma natural
- Se mantuvo pequeño y controlable
- Me obligó a pensar en:
- Flujo
- Privacidad
- Performance
- Simplicidad
Es uno de esos proyectos que no intentan “escalar”, sino resolver algo concreto y divertido.