Il loop delle distrazioni (e i blocker invadenti)
Ti è mai capitato di metterti alla scrivania con l'intenzione di chiudere un lavoro importante, aprire una nuova scheda del browser e ritrovarti venti minuti dopo a scrollare Reddit, YouTube, X o siti di news a caso?
È un automatismo micidiale del cervello: appena incontri un attimo di stanchezza o un bug tosto, la mano digita da sola l'indirizzo del sito di svago preferito.
Quando ho cercato un'estensione per bloccarli, mi sono scontrato con tre problemi tipici del software moderno:
- Pesantezza ingiustificata: estensioni da 30-50 MB piene di librerie e framework enormi solo per mostrare una lista di domini e una schermata di stop.
- Privacy inesistente: strumenti che chiedono il permesso di "leggere e modificare tutti i tuoi dati su tutti i siti web" per poi inviare la tua cronologia a server di terze parti a scopo pubblicitario.
- Modelli a pagamento forzati: pop-up continui per passare a piani "PRO" da 5€/mese solo per poter bloccare più di tre siti o impostare un timer.
Mi sono detto: perché una cosa così semplice deve essere così complicata e invasiva?
Semplicità radicale e 100% in locale
Volevo costruire qualcosa di essenziale, leggero come una piuma e assolutamente rispettoso di chi lo usa.
L'idea alla base di Site Blocker è elementare:
- Apri il popup dell'estensione, inserisci i domini che vuoi evitare (es.
reddit.com,twitter.com) e salvi in un attimo. - Quando provi a navigare su uno di quei siti, l'estensione intercetta la richiesta ed evita il caricamento, reindirizzandoti a una pagina locale pulita, scura e minimale con un promemoria amichevole per farti tornare a ciò che stavi facendo.
- Nessun server remoto: la lista dei siti bloccati è memorizzata esclusivamente nel
chrome.storage.localdel tuo browser. Niente cloud, niente account, zero telemetria e nessun dato che lascia il tuo dispositivo.
Le sfide tecniche dietro le quinte
Anche nei progetti che sembrano minuscoli ci sono sempre dettagli tecnici interessanti quando vuoi fare le cose per bene:
1. Il passaggio a Manifest V3
Con l'arrivo di Manifest V3, Google ha rimosso le vecchie API sincrone di blocco (webRequestBlocking) in favore delle declarativeNetRequest. Ho dovuto strutturare la logica in modo che le regole dinamiche vengano sincronizzate istantaneamente nel motore del browser senza creare conflitti, ritardi o consumi inutili di memoria in background.
2. Matching intelligente dei domini
Se blocchi youtube.com, vuoi che vengano bloccati anche www.youtube.com, m.youtube.com e music.youtube.com, ma senza rischiare di bloccare per errore un sito legittimo che contiene la parola "youtube" nel nome del dominio. Ho implementato un algoritmo di normalizzazione e matching degli URL snello e sicuro.
3. Zero dipendenze: 100% Vanilla JS & CSS
Nessun bundler, nessun framework, nessun modulo npm da decine di megabyte. Tutto il codice è puro JavaScript, HTML e CSS. Il risultato? L'intera estensione pesa meno di 35 KB, il popup si apre istantaneamente e il consumo di RAM ed energia è pari a zero.
Ti piace questa filosofia? Supporta il mio lavoro
Sviluppo questi strumenti nel tempo libero e li rilascio come gratuiti per tutti e privi di qualsiasi forma di tracciamento o pubblicità. Se Site Blocker ti fa risparmiare tempo e vuoi dare una mano a sostenere i costi dei domini e dello sviluppo indipendente, qualsiasi supporto è super apprezzato!