Historial de cambios
Novedades lanzadas y cambios internos implementados
La ruleta en sí
pre-1.0 · 2026-08-29Doce páginas, una ruleta que puedes arrastrar, sonido, enlaces para compartir y un renderizador sin repintados innecesarios.
El sorteo
- Sorteado antes de moverse. Cada giro elige a su ganador mediante
crypto.getRandomValuescon muestreo por rechazo, y la animación se dirige después a esa entrada. Un impulso fuerte genera un giro más largo, nunca un resultado distinto. - La página de imparcialidad. El algoritmo es el propio texto explicativo: el código mostrado en la página es exactamente el código que se ejecuta.
- Pesos y repeticiones. El peso de una entrada es su proporción en el sorteo, reflejado como el porcentaje real que representa. Dos entradas con el mismo texto siguen siendo dos entradas, y la lista muestra cuántas repeticiones ha encontrado en lugar de combinarlas en silencio.
La ruleta
- Doce páginas. Cada una se abre con una ruleta ya completada y cuenta con un control exclusivo que ninguna otra tiene: un rango numérico, un abecedario, un divisor de equipos, una lista de clase o un registro de sorteos.
- Arrastra y suelta. La velocidad al soltar se transforma en vueltas adicionales. Pulsar durante el giro lo detiene antes; la barra espaciadora y Enter permiten girar sin tener que buscar el botón.
- Sonido y respuesta. Chasquidos sincronizados con los divisores que cruza el puntero, un tono de parada, una cuenta atrás cancelable y vibración en móviles: cada opción se puede activar o desactivar e indica claramente su estado actual.
- Modo presentación. Los controles secundarios se ocultan, la ruleta crece hasta ocupar más del 70% del lado corto de la pantalla y el resultado se eleva en un panel de alto contraste con un tamaño visible para toda una sala.
- Dos formas más de mostrar un sorteo. Una tira de tragaperras y una tira de cartas, pensadas para cuando un círculo no es la mejor opción visual.
Guardar y compartir
- Los enlaces compartidos son instantáneas. La ruleta se codifica en la URL, por lo que un enlace nunca caduca y editar la ruleta después no cambia lo que abre un compañero.
- Ruletas guardadas, historial de giros y ajustes preestablecidos de pesos, todo en este navegador y todo exportable a un archivo que puedes llevar a otro equipo. No hay cuentas, por lo que ese archivo es la única vía para transferir datos entre dispositivos.
Por debajo
- El renderizador pasó a canvas. La superficie se dibuja una sola vez cuando la imagen cambia y la rotación es una transformación sobre el elemento, por lo que un giro no requiere procesamiento por fotograma. El texto de las entradas se mantiene como una lista real oculta al lado: un canvas son solo píxeles, y un lector de pantalla necesita texto legible.
- Reducción de movimiento implementada. Con
prefers-reduced-motion: reduce, el recorrido se omite y el resultado se anuncia de inmediato. Todos los competidores analizados carecían de soporte para esta preferencia. - El resultado se anuncia. Se vuelca en una región activa (live region) como texto seleccionable, no como píxeles dibujados en la ruleta.
Reducido a una herramienta pura
pre-1.0 · 2026-08-27La estructura inicial de SaaS con la que comenzó este repositorio se elimina en lugar de desactivarse.
TossWheel comenzó como una plantilla base para SaaS, y la mayor parte del trabajo de este día consistió en restar.
Eliminado
- Cuentas, panel de control, administración y ajustes. No hay nada en lo que iniciar sesión ni nada protegido tras un inicio de sesión, por lo que estas partes se eliminaron en lugar de desactivarse: un flag de función apagado sigue enviando el código que hay detrás.
- La base de datos, el almacenamiento de objetos y la caché clave-valor. El Worker ya no incluye ninguna vinculación. Las listas permanecen en tu navegador y una ruleta compartida viaja dentro del propio enlace.
- Pagos, boletín de noticias y elementos de IA. Ninguno de ellos tenía una función aquí.
Decisiones
- Dirección A, "el instrumento". Se construyeron tres prototipos de alta fidelidad y se eligió uno: la ruleta a la izquierda, la lista al lado, la acción debajo de la ruleta y la ruleta como el único elemento con color de la página.
- Un interruptor previo al lanzamiento. Cada respuesta incluye
noindexhasta completar la lista de verificación de lanzamiento, evitando que algo a medio terminar sea indexado y luego deba desindexarse.
Por qué queda registrado
Volver a introducir una base de datos o un inicio de sesión más adelante sería un cambio de producto, no un detalle de implementación. Esta restricción es la razón por la que una ruleta aquí no necesita cuenta y no guarda ninguna copia de tu lista.