[ 001 · PRODUCTO EN VIVO · MUNDIAL 2026 ]

Gran DT Mundial

Mi grupo de WhatsApp quería un prode para el Mundial. Les ofrecí algo más grande: un Gran DT del Mundial completo. Mantuvo a seis amigos en tres países hablando todos los días durante un mes.

[ ROL ]
Diseño · desarrollo · operación, en solitario
[ STACK ]
Cloudflare Workers + D1 · JS vanilla
[ TEMPORADA ]
11 jun – 19 jul 2026 · 104 partidos
[ LIGA ]
6 equipos anotados · 4 jugaron todas las fechas
[ DATOS ]
3 fuentes, cruzadas por dorsal + nombre
Pantalla de inicio de Gran DT en el celular: 418 puntos totales, primer puesto y la tabla final
[ 1' · EL ARRANQUE ]

Empezó como un prode.

El grupo quería un prode, el que arma cualquier grupo argentino en un Mundial. Contraoferté: ¿y si nos construyo un Gran DT de verdad (presupuesto, fichajes, capitanes, puntaje en vivo) y lo jugamos como un trabajo?

Se anotaron seis amigos. Cuatro jugaron todas las fechas. Esa es toda la base de usuarios. Gente real con plata emocional real sobre la mesa, en un torneo que no espera los bugs de nadie: cuando un partido arranca a las 21:00, el cierre de formaciones funciona o el juego se rompe delante de todos tus conocidos.

Con el grupo repartido en tres países, la liga fue nuestro huso horario compartido. Todos amanecían con la misma tabla, discutían los mismos fichajes y le echaban la culpa al mismo árbitro.

[ CONDICIONES — PRESUPUESTO $0 · FREE TIER — DE GUARDIA: 1 — VENTANA: TORNEO EN VIVO ]

Portada de Gran DT Mundial: 'Armá tu equipo. Ganale la liga a tus amigos. Mundial 2026', con formulario de ingreso

Mobile-first desde el día uno. La liga entera jugó desde el teléfono.

[ 25' · EL JUEGO ]

Equipo, mercado, prode,
centro de partido.

Armado de equipo con presupuesto, mercado de fichajes, un prode montado a cada partido y un centro de partido en vivo, en una UI oscura de marcador con una barra de pestañas flotante diseñada para los pulgares.

[ 9' · EQUIPO ]

Tu equipo en una cancha de verdad

15 jugadores, $205M de presupuesto, siete formaciones, dos capitanes. La cancha es la interfaz: tocás una posición para fichar, tocás un jugador para hacerlo capitán. De cada fecha jugada queda guardada la foto de tu once, comprobantes para el grupo.

Pantalla de equipo: formación 3-4-3 en la cancha con Kane, Mbappé y Messi arriba, $199.5M de $205M de presupuesto usado

[ 27' · PRODE ]

Dos juegos en uno

El prode que el grupo pidió al principio vive adentro de la liga: marcador exacto +3, ganador +1. El mejor de cada fecha se lleva +2 puntos en el Gran DT, así los dos juegos se alimentan entre sí en vez de partir el grupo.

Tabla del prode con los chips de puntaje: +3 marcador exacto, +1 ganador, +2 el mejor de cada fecha suma al Gran DT

[ 63' · CENTRO DE PARTIDO ]

Cada punto, explicado

Goles, tarjetas y cambios en una cronología a dos columnas, el once real en la cancha. Cuando termina el partido, cada punto del Gran DT queda detallado por jugador: minutos, goles, asistencias, valla invicta, MVP. Nadie tuvo que preguntar jamás por qué sacó 43.

Detalle de partido: la formación de Argentina en la cancha con los puntos por jugador, incluida una tarjeta roja con un punto negativo

[ 88' · ELIMINATORIAS ]

Un cuadro que se completa solo

La llave se resuelve automáticamente a medida que caen los resultados de grupos: equipos, horarios y sedes los escribe el motor de sincronización, nunca una mano. La única vista diseñada primero en ancho, porque un cuadro es un afiche de pared.

Cuadro de eliminatorias de 16avos a la final: España 1–0 Argentina, con Francia–Inglaterra por el tercer puesto

[ PANTALLA · ESCRITORIO — LA ÚNICA VISTA QUE SE GANA EL ANCHO ]

[ 45' · DECISIONES ]

Tres decisiones con trade-offs reales.

[ DEC 1 · EN VIVO ]

El partido se ve en vivo. Los puntos, cuando termina.

Durante un partido ves el once real y cada gol al instante, pero los puntos del Gran DT quedan ocultos hasta el final. El dato en vivo es dato provisorio: un gol se revisa, una asistencia se reasigna. Publicar puntos a mitad de partido es retractarlos a mitad de partido.

[ NOTA DEL ÁRBITRO ] Menos dopamina durante los 90 minutos, cero retractaciones después.

[ DEC 2 · DATOS ]

Tres fuentes, cruzadas por dorsal.

Los resultados se reconcilian entre tres fuentes independientes, cruzando por dorsal más nombre, nunca el nombre solo. Lo ambiguo va a una cola de revisión manual en vez de a la tabla. Un resultado mal cargado en una liga de amigos no es un bug, es un escándalo.

[ NOTA DEL ÁRBITRO ] A veces los puntos llegan unos minutos tarde. Nunca llegan mal.

[ DEC 3 · OFICIO ]

Estándares profesionales que nadie pidió.

Accesibilidad con criterio WCAG, y un panel de admin donde toda operación destructiva corre primero en seco y saca un backup antes de ejecutar. Para cuatro jugadores nada de esto era necesario. El único de guardia era yo, así que las barandas eran para mí.

[ NOTA DEL ÁRBITRO ] Días de trabajo que ningún jugador ve, hasta la vez que salvan el torneo.

[ 60' · EL VAR ]

Cómo un resultado llega a ser resultado.

El pipeline de resultados es la parte del producto que los jugadores no ven jamás y de la que dependen por completo. Corrió solo cada 30 minutos alrededor de cada partido, construido como un VAR: puede ser lento, no puede equivocarse.

[ 78' · OFICIO ]

La planilla del equipo.

1Accesibilidad

Toasts con aria-live, modales con manejo real de foco y Escape, contraste AA sobre la paleta oscura, reduced-motion respetado globalmente, etiquetas para lectores de pantalla donde los emojis cargan significado.

10Tarjeta para compartir

Una tarjeta de 1080×1350 de tu equipo dibujada en canvas, a un toque desde el inicio. Diseñada para el grupo de WhatsApp, que es donde esta liga vivió de verdad.

9Web Push

Notificaciones push hechas a mano en el Worker (VAPID más cifrado, verificado antes de deployar). Un recordatorio unas dos horas antes del primer partido de cada fecha: suficiente para salvar la formación de un amigo, no tanto como para ser spam.

[ 90'+ · FINAL DEL PARTIDO ]

[ INCIDENCIA · DISCIPLINARIA ]

Un amigo, hundido en la tabla, declaró que la app era mufa y empezó a poner jugadores que jugaban contra Argentina, puramente para mufarlos.

El 19 de julio, España le ganó 1–0 a Argentina en la final. La última fecha corrió, el pipeline la puntuó y la tabla quedó quieta.

Segurola y HabanaYerba Mala Nunca Muere

[ ÚLTIMA FECHA · PRIMER EMPATE EN TODO EL TORNEO · SIN DESEMPATE ]

Después de 104 partidos y ocho fechas de puntaje, los dos primeros, el mío y el de un amigo, terminaron clavados en 418 puntos. No habíamos empatado nunca antes, en nada, en todo el torneo. El juego no tiene desempate, así que termina exactamente así: compartido.

Una nota al pie, por honestidad: el prode se lo llevó un tercer amigo, 90 puntos contra nuestros 84 y 84. El empate es solo la tabla del Gran DT.

[ DISEÑADO, CONSTRUIDO Y OPERADO EN SOLITARIO · IA COMO HERRAMIENTA DE DESARROLLO ]

El torneo terminó.
La app no.

Gran DT Mundial sigue en vivo. Es una liga privada, así que la puerta muestra un login, pero todo lo que acabás de leer corre ahí atrás. Si querés un recorrido, te doy el tour con gusto.

Hablemos LinkedIn ↗ App en vivo ↗