Un progetto al mese: VibeType ed Easy Meet

Sfida mensile8/26/2026

Un progetto al mese: VibeType ed Easy Meet

Un progetto al mese: VibeType ed Easy Meet

Lo scorso mese ho iniziato la mia sfida personale: realizzare un progetto al mese. Il primo è stato Plate Atlas. Ad agosto, però, il percorso ha preso una direzione diversa e i progetti su cui ho lavorato sono diventati due.

Non sono nati nello stesso modo. VibeType parte da una mia esigenza personale, mentre Easy Meet è un progetto avviato da un amico al quale ho deciso di contribuire. Alla base, però, c'è la stessa sensazione: gli strumenti già disponibili si avvicinavano a ciò che ci serviva, senza riuscire a soddisfarci fino in fondo.

VibeType: l'allenatore di scrittura che non riuscivo a trovare

Da tempo volevo migliorare la velocità e, soprattutto, la precisione nella scrittura a dieci dita. Le piattaforme online non mancano e alcune sono davvero valide, ma nessuna mi permetteva di adattare il metodo di allenamento alle mie esigenze quanto avrei voluto.

Alcune proponevano lezioni prestabilite; altre mostravano moltissime statistiche senza usarle davvero per decidere su quali tasti farmi esercitare. Io cercavo un controllo più preciso sugli obiettivi, sulla lunghezza delle sessioni, sulle lettere iniziali e sul modo in cui introdurre quelle nuove.

Da questa esigenza è nato VibeType.

VibeType comincia con otto lettere comuni e genera lezioni usando parole inglesi reali che possono essere scritte con i caratteri già disponibili. Analizza i risultati di ogni tasto e dà più spazio alla lettera sulla quale sono più debole. Una nuova lettera viene sbloccata soltanto quando tutte quelle correnti raggiungono tre obiettivi: velocità, precisione e numero minimo di pressioni.

Una regola a cui tenevo particolarmente riguarda gli errori. Ogni posizione viene valutata una sola volta: posso usare il backspace per correggere ciò che vedo sullo schermo, ma non posso migliorare artificialmente la precisione cancellando e riscrivendo lo stesso carattere. In questo modo le statistiche rimangono oneste.

Le impostazioni sono diventate una parte centrale del progetto. Posso modificare gli obiettivi di velocità e precisione, la lunghezza delle lezioni, la dimensione massima delle parole, il peso assegnato alla lettera più debole e il numero di caratteri iniziali. Posso anche scegliere come deve funzionare la cancellazione di una parola e se nascondere l'interfaccia mentre scrivo, lasciando sullo schermo soltanto il testo.

Ho sviluppato VibeType con Svelte 5, SvelteKit e TypeScript. È un'applicazione completamente statica, senza server né account: progressi, cronologia e preferenze restano nel browser tramite local storage. Per uno strumento di allenamento personale, questa scelta mantiene tutto semplice, veloce e privato.

La lezione più importante è stata capire che anche uno strumento piccolo richiede regole progettate con attenzione. Creare un'area in cui scrivere è facile; rendere la progressione equilibrata, dare un significato concreto a ogni statistica ed evitare che le correzioni falsino i risultati ha richiesto molto più lavoro.

Prova VibeType

Easy Meet: entrare nell'idea di un amico

Easy Meet ha una storia diversa. Easy Meet è soltanto un nome provvisorio e potrebbe cambiare con l'evoluzione del progetto. Era da tempo che volevo realizzare qualcosa di simile: cercavo un modo semplice per fare riunioni online senza limiti di tempo troppo brevi, piattaforme aziendali macchinose o restrizioni dei piani gratuiti che si presentano proprio nel momento meno opportuno.

Avevo già iniziato a lavorare a questa idea diverse volte, ma mi ero sempre fermato perché non riuscivo a dedicarle abbastanza tempo. Quando un mio amico ha cominciato a sviluppare la sua versione, vedere il progetto prendere forma mi ha restituito la motivazione che mi era mancata nei tentativi precedenti. Invece di ricominciare ancora una volta da solo, ho deciso di affiancarlo e contribuire al progetto insieme a lui.

Il concetto di base è semplice: un utente autenticato può creare stanze permanenti, copiare il collegamento privato e riutilizzarlo ogni volta che serve. Gli invitati possono aprire il link ed entrare senza registrarsi, eliminando gran parte dell'attrito tipico di una chiamata veloce.

L'applicazione offre voce, chat della stanza e condivisione dello schermo. L'audio e la condivisione dello schermo viaggiano tramite WebRTC. I browser provano prima a collegarsi direttamente ma, quando la rete impedisce questo percorso, possono affidarsi a un relay TURN di Cloudflare. Convex gestisce le stanze, la presenza dei partecipanti, i messaggi, i segnali necessari a stabilire le connessioni e le credenziali temporanee per il relay. Il frontend è sviluppato con React e TypeScript ed è distribuito su Cloudflare Workers.

Contribuire a Easy Meet ha significato affrontare problemi che in un'applicazione locale come VibeType non esistono. Un partecipante può chiudere la scheda senza premere Esci, il browser può rallentare le attività in background, il permesso per il microfono può essere negato e due dispositivi possono iniziare una negoziazione nello stesso momento. Inoltre, alcune reti impediscono una connessione diretta tra i partecipanti.

Il progetto gestisce questi casi attraverso heartbeat periodici, pulizia automatica delle sessioni, una negoziazione WebRTC attenta e messaggi di errore comprensibili. È anche possibile entrare senza microfono e partecipare come ascoltatore. L'interfaccia include i controlli per il mute, la cancellazione del rumore, l'indicatore del livello audio, le notifiche della chat e la visualizzazione a schermo intero delle condivisioni.

Abbiamo scelto anche limiti chiari. Ogni stanza può ospitare fino a quattro persone. La prima versione si affidava soltanto a STUN, perciò alcune reti particolarmente restrittive non riuscivano a stabilire una connessione diretta. Ora Easy Meet usa anche il servizio TURN di Cloudflare: l'applicazione cerca prima il percorso diretto e ricorre al relay soltanto quando è necessario. Le credenziali sono temporanee e vengono richieste solo dopo l'ingresso nella stanza. Questo elimina una delle principali limitazioni iniziali e rende le chiamate più affidabili, senza complicare l'esperienza per chi partecipa.

Prova Easy Meet

Due progetti, lo stesso punto di partenza

VibeType ed Easy Meet sono applicazioni molto diverse. La prima è locale, privata e pensata per una sola persona; la seconda è condivisa, in tempo reale e dipende da più browser che devono rimanere connessi.

Eppure entrambe partono dalla stessa domanda: cosa succede quando lo strumento di cui abbiamo bisogno esiste quasi, ma non è abbastanza flessibile o affidabile per noi?

Con VibeType cercavo un maggiore controllo sul mio allenamento. Con Easy Meet volevamo riprenderci il controllo sul modo in cui un piccolo gruppo si incontra online. In nessuno dei due casi l'obiettivo era sostituire ogni piattaforma esistente: volevamo costruire uno strumento mirato, capace di risolvere bene il nostro problema.

Questo mese mi ha ricordato anche che una sfida personale non deve per forza significare lavorare da soli. Sviluppare una mia idea mi ha insegnato a trasformare un'abitudine personale in un prodotto. Contribuire all'idea di un amico mi ha insegnato a entrare in una base di codice già avviata, confrontarmi sulle scelte tecniche e migliorare insieme un'applicazione reale.

La sfida si chiama un progetto al mese, ma uno può essere il minimo, non il limite. Agosto si chiude con due strumenti utili e due esperienze di apprendimento molto diverse. Mi sembra un ottimo secondo capitolo.