Changelog
Cosa è stato rilasciato e cosa è cambiato sotto la scocca
La ruota vera e propria
pre-1.0 · 2026-08-29Dodici 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.getRandomValuestramite 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: reduceil 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-27L'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
noindexfino 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.