Salta al contenuto principale

Changelog

Cosa è stato rilasciato e cosa è cambiato sotto la scocca

La ruota vera e propria

pre-1.0 · 2026-08-29

Dodici pagine, una ruota trascinabile, suoni, link di condivisione e un motore di rendering che ha smesso di ridisegnare inutilmente.

L'estrazione

  • Estratto prima del movimento. Un giro seleziona il proprio vincitore da crypto.getRandomValues tramite rejection sampling, e l'animazione viene poi mirata su quella voce. Un tocco energico allunga la durata del giro, ma non cambia mai il risultato.
  • La pagina della trasparenza. L'algoritmo è il testo stesso della pagina — il codice mostrato è esattamente quello eseguito.
  • Pesi e ripetizioni. Il peso di una voce rappresenta la sua quota di estrazione, indicata come percentuale effettiva. Due voci con lo stesso testo rimangono due voci distinte e l'elenco segnala quante ripetizioni ha trovato anziché unirle silenziosamente.

La ruota

  • Dodici pagine. Ognuna si apre con una ruota già compilata e include un controllo esclusivo: intervallo numerico, alfabeto, divisore in squadre, elenco classe, registro estrazioni.
  • Trascina e rilascia. La velocità di rilascio si trasforma in giri extra. Premendo durante la rotazione si interrompe prima il giro; Spazio e Invio fanno girare la ruota senza dover cercare il pulsante.
  • Un feedback audio. Ticchettii sincronizzati con i divisori superati dall'indicatore, un segnale acustico di atterraggio, un conto alla rovescia annullabile e vibrazione su smartphone — ciascuno attivabile/disattivabile e con indicazione dello stato attuale.
  • Modalità presentazione. I controlli secondari si nascondono, la ruota supera il 70% del lato corto dello schermo e il risultato si mostra in un pannello ad alto contrasto leggibile da tutta la stanza.
  • Altri due modi per mostrare un'estrazione. Una striscia stile slot machine e una striscia di carte, per quando il cerchio non è il formato ideale.

Salvataggio e condivisione

  • I link di condivisione sono istantanee. La ruota è codificata nell'URL, per cui il link non scade mai e modificare la ruota in seguito non altera ciò che apre un collega.
  • Ruote salvate, cronologia dei giri e preset di pesi, tutto in questo browser, tutto esportabile in un file trasferibile su un altro dispositivo. Non essendoci account, quel file è l'unico modo per spostare i dati tra macchine diverse.

Sotto il cofano

  • Rendering trasferito su canvas. La faccia della ruota viene disegnata una sola volta al variare dei contenuti e la rotazione avviene tramite transform sull'elemento, azzerando il carico di lavoro per frame durante il giro. Il testo delle voci è conservato come elenco reale nascosto a fianco — un canvas è fatto di pixel, mentre uno screen reader ha bisogno di testo leggibile.
  • Supporto per movimento ridotto. Con prefers-reduced-motion: reduce il percorso viene saltato e il risultato viene annunciato all'istante. Nessuno dei tre concorrenti gestiva questa preferenza.
  • Il risultato viene annunciato. Viene inserito in una live region come testo selezionabile, non come pixel disegnati sulla ruota.

Ridotto a un sito di strumenti

pre-1.0 · 2026-08-27

L'infrastruttura SaaS da cui è partito questo repository è stata rimossa anziché semplicemente disattivata.

TossWheel è nato come modello iniziale per un SaaS, e gran parte del lavoro di questa giornata è stato un lavoro di sottrazione.

Rimosso

  • Account, dashboard, pannello di amministrazione e impostazioni. Non c'è nulla a cui accedere e nulla protetto da login, quindi le interfacce sono state eliminate anziché disattivate: un feature flag spento include comunque il codice sottostante.
  • Database, archiviazione oggetti e cache chiave-valore. Il Worker ora non ha alcun binding. Gli elenchi risiedono nel tuo browser e una ruota condivisa viaggia all'interno del link.
  • Pagamenti, newsletter e interfacce IA. Nessuno di questi elementi aveva un ruolo qui.

Scelte effettuate

  • Direzione A, "lo strumento". Sono stati realizzati tre prototipi ad alta fedeltà ed è stato scelto uno: la ruota a sinistra, l'elenco accanto, l'azione sotto la ruota, e la ruota come unico elemento colorato sulla pagina.
  • Un'opzione pre-lancio. Ogni risposta include noindex fino al completamento della checklist di lancio, per evitare che contenuti non finiti vengano indicizzati e debbano poi essere rimossi dall'indice.

Perché è stato documentato

Reintrodurre un database o un sistema di login in seguito sarebbe una modifica di prodotto, non un dettaglio implementativo. Questo vincolo è il motivo per cui una ruota qui non richiede account e non conserva copie del tuo elenco.