El directo ya no puede mentir sobre los puntos

Las ultimas 24 horas en Nima Project tuvieron actividad en tres sitios:

  • el workspace compartido
  • world-cup-porra
  • world-cup-api

La historia del dia no fue "anadimos otro panel" ni "pulimos otro layout".

Fue algo mas estructural:

Ultimate Porra dejo de tratar el directo como una capa visual separada y empezo a obligarlo a responder ante la misma verdad que decide los puntos reales.

Hasta ahora habia tres cosas que podian vivir demasiado sueltas entre si:

  • el resultado oficial ya cerrado;
  • el partido en directo con estado provisional;
  • y la forma en que la home, las tarjetas y el voto le explicaban eso al usuario.

Estas 24 horas van justo de coser esas tres piezas.

El primer cambio serio: cuando el partido se cierra, la UI ya no puede seguir calculando "a ojo"

Los commits que abren la ventana marcan muy bien ese giro:

  • Use official closed-match points
  • Align match scoring breakdown
  • Fix official scoring refresh
  • Document World Cup score refresh endpoint

La implicacion es fuerte.

Mientras un partido esta vivo, tiene sentido mostrar puntos provisionales. Pero en cuanto existe resultado oficial cerrado, el producto ya no puede seguir dependiendo de una reinterpretacion local del scoring.

Tiene que leer la verdad oficial y refrescarla bien.

Eso se nota en los dos lados:

  • el frontend incorpora prediction-points.js para preferir puntos almacenados cuando el partido ya no es provisional;
  • la API anade y documenta mejor el refresh de scoring oficial para que los cierres no queden a merced del ultimo render o del ultimo poll.

No es un detalle tecnico.

Es el momento en que la porra empieza a asumir que el directo puede ser aproximado, pero el cierre no.

La home deja de ser un collage de estados y pasa a ser una superficie de lectura

La mayor concentracion de commits estuvo en world-cup-porra, y casi todos giran alrededor de lo mismo:

  • Fix live scoring on pool home
  • Prime live scoring before pool home render
  • show actual scorers on vote cards
  • simplify actual scorer hint
  • align dashboard live and stats cards
  • show live minute and compact stats cards
  • reorganize mobile dashboard live layout
  • place live preview under progress
  • simplify live match preview
  • style live status as plain text
  • move evaluated votes into rank card
  • align live panel flags

Vistos uno a uno parecen pequenos.

Vistos juntos, cuentan una decision de producto muy clara:

la home ya no puede mezclar ranking, live, estadisticas y voto como piezas sueltas. Tiene que leerse como una explicacion compacta de tu estado dentro de la partida.

Por eso pasan varias cosas a la vez:

  • los votos evaluados se mueven dentro de Tu posicion, porque ya no son un dato lateral sino parte del contexto de ranking;
  • el panel live se simplifica y pierde el tono de bloque decorativo;
  • los minutos en juego, descanso o pausa de hidratacion pasan a importar como copy de estado real;
  • y el preview live se recoloca debajo del progreso para que la narrativa visual tenga orden.

La app esta diciendo algo nuevo:

primero te ubico, luego te explico el partido, y solo despues te dejo navegar el resto.

Las conversaciones de chat empujaron exactamente en esa direccion

En las sesiones de Codex del 18 al 19 de junio aparecieron instrucciones muy concretas que no hablaban de arquitectura, pero si de contrato de producto:

  • Quita los textos de los paises del contenedor live
  • el status live no debe tener fondo de color solo cambiar el color de texto
  • En caso de live texto rojo
  • en caso de descanso o paisa por hidratacion azul
  • LOS VOTOS EVALUADOS ... DEBEN ESTAR DENTRO DEL CONTENEDOR TU POSICION
  • LAS BANDERAS Y EL VS DEBEN ESTAR ALINEADOS VERTICALMENTE

Eso no es simple preferencia visual.

Es una insistencia en que el directo no robe protagonismo con cajas, fondos y adornos cuando lo importante es leer rapido:

  • que estado tiene el partido;
  • cuanto de tu puntuacion ya esta evaluado;
  • y que parte sigue abierta o provisional.

La conversacion no iba de "hacerlo mas bonito".

Iba de quitar ruido para que la semantica del estado quede mas limpia.

Mostrar goleadores reales en la tarjeta de voto cambia el tipo de transparencia

Los commits:

  • feat: show actual scorers on vote cards
  • fix: simplify actual scorer hint

parecen pequenos, pero mueven una frontera importante.

Hasta ahora el bonus de goleador podia sentirse como una regla interna del sistema. Ahora la tarjeta empieza a devolver la evidencia del partido: quien marco realmente, y en que medida aplica ese bonus.

Eso cambia la relacion entre usuario y scoring.

Ya no basta con decir:

  • tienes tantos puntos;
  • o no puntua si no aplica.

Ahora el producto empieza a ensenar la pista visible que justifica esa evaluacion.

En una porra eso vale oro, porque la confianza no se gana solo calculando bien. Tambien se gana dejando ver por que calculaste eso.

Incluso copiar votos deja de vivir en la home principal

Hubo un commit que parece lateral pero encaja perfecto con el resto:

  • move copy votes panel to setup

Mover copia de votos fuera del dashboard y devolverla a setup es otra forma de ordenar semantica.

La home queda para:

  • estado;
  • posicion;
  • live;
  • resumen.

La configuracion queda para:

  • herramientas de operacion.

Cuando una app madura, no solo endurece reglas. Tambien separa mejor los tipos de accion.

Lo que realmente cambio en estas 24 horas

Lo facil seria contar el dia como:

  • mejor scoring;
  • mejor live;
  • mejor responsive.

Pero el cambio de fondo es otro.

Ultimate Porra empezo a exigir que el directo, el cierre oficial y la explicacion visible de puntos dejen de contradecirse entre si.

Eso obliga a varias disciplinas juntas:

  • el backend tiene que refrescar el scoring oficial de forma fiable;
  • el frontend tiene que distinguir mejor entre puntos provisionales y cerrados;
  • la home tiene que priorizar lectura por encima de decoracion;
  • y la tarjeta de voto tiene que ensenar mas evidencia del partido real.

Lo que me llevo de este tramo

  • Cuando existe resultado oficial cerrado, la UI ya no deberia recalcular puntos como si siguiera en modo provisional.
  • Un endpoint de refresh documentado importa porque la consistencia del scoring ya es parte del producto, no solo del backend.
  • Mover votos evaluados dentro de Tu posicion corrige narrativa, no solo layout.
  • El estado live funciona mejor como texto semantico tintado que como chip con fondo si lo que quieres es lectura rapida.
  • Mostrar goleadores reales en la tarjeta convierte el bonus en algo mas auditable.
  • Sacar copia de votos de la home ayuda a que el dashboard vuelva a ser superficie de seguimiento, no cajon de utilidades.

Estas 24 horas no cambiaron el producto con una gran feature nueva.

Cambiaron algo mas delicado:

la porra empezo a aceptar que un partido en directo puede ser provisional, pero la explicacion de puntos no puede ser ambigua, y mucho menos mentir cuando el resultado ya es oficial.


Parte de mis notas de producto y plataforma. Sigue el blog o escribeme.