{"id":2118,"date":"2026-07-22T07:00:00","date_gmt":"2026-07-22T05:00:00","guid":{"rendered":"https:\/\/www.studiolevi.org\/?p=2118"},"modified":"2026-06-25T11:21:15","modified_gmt":"2026-06-25T09:21:15","slug":"perche-ho-piallato-i-plugin-degli-altri-e-ho-scritto-i-miei","status":"publish","type":"post","link":"https:\/\/www.studiolevi.org\/?p=2118","title":{"rendered":"Perch\u00e9 ho piallato i plugin degli altri e ho scritto i miei"},"content":{"rendered":"\n<p class=\"has-drop-cap wp-block-paragraph\">Nel meraviglioso mondo di WordPress vige un dogma accettato passivamente dalle masse: <em>\u201cC\u2019\u00e8 un plugin per tutto\u201d<\/em>. Verissimo. Online si trovano soluzioni straordinarie scritte da programmatori con i contromaroni. Il problema, per\u00f2, non \u00e8 la qualit\u00e0 del codice di questa gente. Il problema \u00e8 l&#8217;obesit\u00e0 informatica che ci si tira in casa ogni volta che si clicca su &#8220;Installa&#8221;.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Perch\u00e9, vedete, anche se un plugin \u00e8 scritto da un &#8220;mago&#8221; della tastiera, deve comunque accontentare l&#8217;utente medio (leggi: pigro e pretenzioso). Risultato? Ci si ritrova sul server tre tonnellate di fogli di stile, script JavaScript larghi come portaerei e opzioni che alla platea non serviranno mai. Nemmeno in un&#8217;altra vita.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cos\u00ec, in un attacco di pura <strong>coerenza<\/strong> (e si, anche un p\u00f2 di noia), ho preso l&#8217;editor di testo ed ho fatto il battitore libero. Non per presunzione. Semplicemente, ho applicato la stessa filosofia di quel &#8220;fan\u00e0im\u00e0n&#8221; di Davide Bianchi su <em>soft-land.org<\/em>: se una cosa \u00e8 inutile, va eliminata. Se pesa, va ottimizzata. Se si pu\u00f2 fare con tre righe di codice, non si installa un&#8217;applicazione da venti megabyte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sia chiaro subito il punto fermo per tutta la platea: <strong>questo sito non esiste per &#8220;essere bello&#8221;<\/strong>. Non ci sono slide che girano, non ci sono popup molesti, non ci sono animazioni che fanno decollare la ventola del computer di chi legge. Questo spazio esiste solo per essere essenziale, fulmineo e fatto per una sola cosa: essere letto. Il resto \u00e8 fuffa visiva per chi non ha nulla da dire.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tutto parte dalle fondamenta: sfoltire il genio<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La crociata contro il superfluo \u00e8 iniziata dal template. La scelta \u00e8 ricaduta su <strong>TDT-One<\/strong>, un gioiello di <strong>Thapelo Moeti<\/strong>, un programmatore eccezionale che sa decisamente il fatto suo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ora, \u00e8 facile intercettare il pensiero del pignolo di turno tra il pubblico: <em>\u201cMa scusa, visto che fai tanto il purista del codice, perch\u00e9 il tema non te lo sei scritto da zero da solo?\u201d<\/em>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Risposta semplice: <strong>si reinventerebbe lo pneumatico solo per cambiare una gomma?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Certo che no. Sarebbe una masturbazione mentale inutile e antieconomica. Oddio, il gi\u00e0 citato Davide Bianchi l&#8217;ha fatto eh, anzi per essere precisi si \u00e8 scritto il suo intero CMS proprietario, il famosissimo FdT, ma io per fortuna ho incrociato la strada di Thapelo che ha gi\u00e0 risolto in modo egregio tutta la noiosa parte strutturale, il layout di base e la compatibilit\u00e0. La sua base era gi\u00e0 ottima, ma per gli standard di ascesi digitale di questo blog c&#8217;era comunque troppo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Armato di accetta, il suo codice \u00e8 stato abbondantemente sfoltito, estirpando qualunque funzione non rispondesse a un bisogno vitale. Il risultato? Una base pulita, scattante, che non consuma risorse inutilmente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A quel punto, installare i classici plugin commerciali sarebbe stato come montare il motore di un tagliaerba su una Ferrari (ad essere onesto, in un certo senso si potrebbe anche vedere al contrario, il motore di una Ferrari su un tagliaerba, ma ci siamo capiti dai). La logica doveva essere una sola: <strong>meno \u00e8 meglio, ma della giusta misura<\/strong>. Senza fanatismi, ma con estrema fermezza.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">La suite di script per il backend (fatti in casa)<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Per mantenere il controllo totale ed evitare che il database diventasse una discarica di dati inutili, ho scritto una suite personale. Nota bene per i curiosi: i nomi specifici dei moduli non esistono e la descrizione tecnica di seguito rimarr\u00e0 volutamente asciutta. Non aspettatevi di leggere i dettagli del funzionamento o le singole funzioni. <strong>La vera sicurezza passa anche dal non svelare troppo<\/strong>, e meno dettagli si danno in pasto al pubblico, meno appigli si lasciano a chi ha intenzioni moleste.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ecco cosa gira sul server, descritto con il minimo sindacale di informazioni necesarie:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Il sistema di blindatura degli accessi:<\/strong> nessun software di sicurezza elefantiaco che scansiona il server ogni tre secondi consumando CPU come se non ci fosse un domani. Poche righe di codice chirurgiche per bloccare la porta d&#8217;ingresso. Come non ve lo dico, ma funziona.<br><\/li>\n\n\n\n<li><strong>Il blocco dei tentativi di login forzati:<\/strong> si sbaglia la password? Il sistema prende il malintenzionato a calci e lo banna all&#8217;istante. Zero configurazioni, zero pannelli di controllo, zero memoria sprecata. Ciao.<br><\/li>\n\n\n\n<li><strong>Il notificatore personalizzato per i nuovi articoli:<\/strong> bisogna avvisare gli iscritti se esce un pezzo? Bene. Questa funzione invia l&#8217;avviso e muore l\u00ec. Non crea tabelle chilometriche nel database per tracciare anche quante volte il lettore batte le palpebre. Un gentile avviso e poi il silenzio.<br><\/li>\n\n\n\n<li><strong>La gestione minimale dei meta tag:<\/strong> i plugin SEO pi\u00f9 famosi sono diventati dei mostri pieni di pubblicit\u00e0, sezioni premium e consigli ridicoli scritti per i motori di ricerca e non per gli umani. Qui si gestiscono solo i meta tag sacrosanti, i tag open graph e la sitemap. Fine della fiera. Gioco, partita, incontro.<br><\/li>\n\n\n\n<li><strong>Il sistema nativo per l&#8217;informativa sui cookie:<\/strong> un banner minimale che fa il suo dovere di legge senza scaricare script esterni da server remoti e senza appesantire il caricamento. Rispetto delle regole, zero tracciamento, rottura di zebedei dell&#8217;utente al minimo sindacale.<br><\/li>\n\n\n\n<li><strong>La rimozione totale di commenti e flussi aggregati:<\/strong> se in questo sito non si vogliono i commenti e non servono i feed RSS, perch\u00e9 lasciare che WordPress continui a generare quel codice esponendosi allo spam dei bot? Piallati alla radice. Scomparsi.<br><\/li>\n\n\n\n<li><strong>Il tracciamento ultraleggero delle visite:<\/strong> non importa a nessuno (almeno, non a me) sapere se il pubblico usa uno schermo a 4K o se naviga dal bagno. Basta sapere quali articoli e pagine vengono letti. Un conteggio invisibile che non ruba nemmeno un millisecondo al caricamento della pagina.<br><\/li>\n\n\n\n<li><strong>La Progressive Web App (PWA) monolitica:<\/strong> trasforma il sito in un&#8217;applicazione installabile sullo smartphone in totale autonomia, senza tirarsi dietro plugin commerciali. Il sistema gestisce tutto in background: si adatta all&#8217;interfaccia, propone l&#8217;installazione tramite un banner dedicato che si attiva <em>solo<\/em> sui dispositivi mobili (evitando di disturbare chi naviga da PC) e si aggiorna da solo nel momento esatto in cui viene pubblicato un nuovo contenuto. Il risultato pratico? Chi legge pu\u00f2 mettere il telefono in modalit\u00e0 aereo e continuare a navigare sulla Home e sui contenuti, che rimangono accessibili all&#8217;istante, a consumo dati zero.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Zero plugin anche per l&#8217;interfaccia: solo roba utile. Punto.<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La stessa identica pulizia \u00e8 stata applicata alle funzioni visibili sullo schermo. C&#8217;\u00e8 gente che installa un plugin intero anche solo per mostrare una riga colorata. Roba da denuncia penale informatica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Il codice \u00e8 stato scritto nativo, integrato direttamente nell&#8217;ecosistema del sito. Sempre rigorosamente fatti in casa, la platea trover\u00e0:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Il contatore previsionale del tempo di lettura degli articoli:<\/strong> calcola all&#8217;istante quanti minuti servono per leggere, basandosi sul numero di parole. Nessun calcolo esternalizzato, aritmetica pura sul server: questo diviso quello e fine della storia.<br><\/li>\n\n\n\n<li><strong>La barra di avanzamento della lettura di cui sopra:<\/strong> un indicatore visivo microscopico in termini di peso che segue lo scorrimento della pagina. Dice a che punto si \u00e8 arrivati, senza scassare la uallera al browser.<br><\/li>\n\n\n\n<li><strong>L&#8217;archivio navigabile per data:<\/strong> una consultazione navigabile dei post pulita, logica e immediata. Niente query complesse che fanno sudare il database.<br><\/li>\n\n\n\n<li><strong>Il widget degli ultimi articoli in home page:<\/strong> mostra i contenuti recenti esattamente dove servono. Senza trascinarsi dietro fogli di stile extra o i layout barocchi dei widget standard di WordPress. Unico vezzo, il &#8220;NEW&#8221; lampeggiante solo nel giorno di pubblicazione dell&#8217;articolo (l&#8217;ha chiesto mia moglie, potevo rifiutare?).<br><\/li>\n\n\n\n<li><strong>Il traduttore automatico in lingua inglese:<\/strong> una funzione interna che converte il testo per il pubblico internazionale. Genera la versione inglese al volo (con GTranslate) e in autonomia, senza appoggiarsi a pesanti script esterni che rallentano la pagina. Occhio eh&#8230; lo sentite? Ecco il pignolo che dice: come si fa a dire &#8220;senza pesanti script esterni&#8221; se poi si scomoda un gigante come Google? Semplice: il codice prende in prestito la potenza di Google &#8220;nel retrobottega&#8221; del server. Il browser di chi legge riceve solo testo puro, senza dover caricare pesanti widget JavaScript esterni. In pratica: si sfrutta l&#8217;algoritmo di Big G alla velocit\u00e0 della luce, ma con l&#8217;impatto sul caricamento di una piuma e con zero tracciamenti o incetta di dati degli utenti.<br><\/li>\n\n\n\n<li><strong>L&#8217;esportatore nativo in formato PDF e DOC\/RTF:<\/strong> permette alla platea di salvare gli articoli per una lettura offline. Il server impacchetta il file in un clic usando codice pulito, senza costringere a installare suite di conversione mastodontiche. Perch\u00e9 anche DOC\/RTF? Cosa non \u00e8 chiaro in <strong>&#8220;<a href=\"https:\/\/creativecommons.org\/licenses\/by-nc-sa\/4.0\/legalcode.it\" data-type=\"link\" data-id=\"https:\/\/creativecommons.org\/licenses\/by-nc-sa\/4.0\/legalcode.it\">CC BY-NC-SA<\/a>&#8220;<\/strong>?<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Tutta roba utile. Solo roba utile.<\/em> Il resto \u00e8 rumore di fondo per siti che devono nascondere la mancanza di contenuti dietro a un design luccicante.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">L&#8217;eccezione<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;unica eccezione a questo repulisti generale? Il plugin per l&#8217;autenticazione a due fattori. Ora, non venite a spiegarmi che si pu\u00f2 programmare un TOTP in PHP sul tovagliolo di un bar. Si pu\u00f2 fare, certo, ma improvvisarsi esperti di crittografia \u00e8 il primo passo per finire dritti nella hall of fame degli idioti del web. Siccome non avevo voglia di rimanere chiuso fuori dal mio server per colpa del mio stesso ego, ho preferito delegare. Ho evitato i soliti moduli &#8220;mainstream&#8221; che ti vendono pure la nonna e ti appioppano milleduecento pannelli inutili, e ho scelto un tool spartano e solido, focalizzato su un unico obiettivo (e no, non vi dir\u00f2 il nome neanche sotto tortura). \u00c8 l&#8217;eccezione che conferma la regola: dove il fai-da-te diventa roulette russa, la vera saggezza sta nell&#8217;alzare bandiera bianca. Forse, un giorno, quando avr\u00f2 digerito abbastanza teoria, prover\u00f2 a scrivermelo da solo. Oggi no.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Una scelta di campo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Scriversi le cose da soli richiede tempo, mal di testa e competenze. Non \u00e8 una strada consigliabile a chi vuole la pappa pronta. E per anticipare i malpensanti di turno: no, i plugin non li ha scritti ChatGPT, n\u00e8 Gemini. Li ho pensati, strutturati e scritti io, sono farina del mio sacco e frutto del sudore dei miei polpastrelli.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">L&#8217;intelligenza artificiale, per\u00f2, l&#8217;ho usata. E l&#8217;ho usata per quello in cui eccelle davvero: l&#8217;ottimizzazione, il &#8220;refactoring&#8221; e la caccia alle virgole fuori posto. Se la sai guidare bene, se hai in testa esattamente cosa vuoi ottenere e le dai le direttive giuste, l&#8217;AI sa fare questo lavoro in modo egregio. Diventa un assistente formidabile per rifinire l&#8217;opera.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Questo sito oggi non \u00e8 veloce perch\u00e9 \u00e8 stato installato un plugin di cache miracoloso che nasconde la polvere sotto al tappeto. \u00c8 veloce perch\u00e9 <strong>non ha nulla da elaborare che non sia strettamente necessario<\/strong>. Meno codice, meno potenziali falle di sicurezza, meno query. Solo l&#8217;essenziale, della giusta misura, per rimettere al centro l&#8217;unica cosa che conta davvero: la lettura. E se a qualcuno della platea non dovesse piacere l&#8217;estetica spartana&#8230; beh, il web \u00e8 grande, si pu\u00f2 andare a farsi ipnotizzare altrove.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nel meraviglioso mondo di WordPress vige un dogma accettato passivamente dalle masse: \u201cC\u2019\u00e8 un plugin per tutto\u201d. Verissimo. Online si trovano soluzioni straordinarie scritte da programmatori con i contromaroni. Il problema, per\u00f2, non \u00e8 la qualit\u00e0 del codice di questa [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7,12,3],"tags":[150,110,160],"class_list":["post-2118","post","type-post","status-publish","format-standard","hentry","category-cose-da-nerd","category-informatica","category-varie","tag-programmazione","tag-riflessioni","tag-web"],"_links":{"self":[{"href":"https:\/\/www.studiolevi.org\/index.php?rest_route=\/wp\/v2\/posts\/2118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.studiolevi.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.studiolevi.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.studiolevi.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.studiolevi.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2118"}],"version-history":[{"count":34,"href":"https:\/\/www.studiolevi.org\/index.php?rest_route=\/wp\/v2\/posts\/2118\/revisions"}],"predecessor-version":[{"id":2251,"href":"https:\/\/www.studiolevi.org\/index.php?rest_route=\/wp\/v2\/posts\/2118\/revisions\/2251"}],"wp:attachment":[{"href":"https:\/\/www.studiolevi.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.studiolevi.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.studiolevi.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}