Site Blocker

Un'estensione browser nata da una necessità personale banale ma quotidiana: smettere di finire sui soliti siti di distrazione mentre lavoro, senza dover installare software pesanti o che si spiano la mia cronologia.

JavaScript HTML5 CSS3 Chrome Storage API Manifest V3

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.local del 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!