Perché Sono Passato a Hugo

Sono passato da Wordpress ad un blog statico, realizzato con Hugo - e sono sopravvissuto. Ecco perché.

Ebbene sì: dopo oltre due anni di utilizzo di Wordpress sono passato ad un blog statico. La scelta non è stata indolore e non fa per tutti, ma è ideale per il mio utilizzo.

Ho iniziato a utilizzare Wordpress, il più famoso CMS al mondo, oltre due anni fa. Non sapevo né come funzionasse né quali alternative ci fossero; o meglio, le conoscevo, ma le ignoravo (e alcune, in realtà, le avevo già utilizzate e successivamente scartate). Forte della sua popolarità, quindi, Wordpress mi ha convinto a sceglierlo per il mio progetto.

Un po' di storia

Dopo averlo installato sul mio Web server, mi sono dato subito alla configurazione: ho provato tanti plugin e altrettanti temi, cercando di trovare il giusto compresso tra il carico computazionale e le mie idee. Non è stato un compito semplice.

Ho iniziato a pubblicare i primi articoli e, con l’arrivo dei primi visitatori, ho deciso di cambiare vestito: volevo che il blog fosse più curato, esteticamente, così come desideravo fosse funzionale. E ho iniziato a spulciare tra un sito e l’altro, tra un repository e l’altro; finché non ho trovato un template che sembrava fare al caso mio.

Il tempo ha continuato a scorrere e gli articoli sono aumentati. E, nuovamente, non ero più soddisfatto di come appariva il sito ai visitatori. Ho deciso, ancora una volta, di cambiare l’aspetto. Di stravolgerlo. Ho scelto un template semplice e veloce, che ho poi modificato per le mie esigenze: le competenze che ho acquisito nel tempo mi hanno permesso di plasmare il blog come lo volevo.

I problemi

E così, tra un cambio di tema e l’altro, tra un articolo e tante righe di codice, si sono presentati i primi problemi: il sito era lento. Per caricare un singolo articolo potevano servire ancche alcuni secondi. Un’eternità, insopportabile.

Ho iniziato le ricerche e, in poco tempo, sono riuscito a migliorare i tempi di rendering a poche centinaia di millisecondi. Con tanta pazienza e le tecniche giuste:

  • ho iniziato ad eseguire il caching dei contenuti;
  • ho abilitato il lazy loading: le immagini, così, venivano caricate solo poco prima che il lettore arrivasse al punto della pagina in cui erano posizionate;
  • ho compresso tutte le immagini in formati moderni e ho iniziato a creare più versioni di ognuna: una “piccola” a media risoluzione per gli smartphone, una un po' più grande e così via, fino a quelle dedicate ai PC. Ogni immagine era presente in 6-7 versioni diverse e il browser dell’utente scaricava solo quella più adatta;
  • ho ridotto il carico sul server, rimuovendo i plugin superflui (o che utilizzavo in maniera marginale);
  • ho minificato il codice, rimuovendo tutti i caratteri non essenziali (come spazi e tab) dal codice sorgente. Alcuni kilobyte guadagnati;
  • ho fatto il possibile per impedire che le risorse non essenziali (script JavaScript e fogli di stile) bloccassero il caricamento delle pagine;
  • ho modificato la configurazione del Web server per dire al client di eseguire il caching delle pagine e delle risorse;
  • ho iniziato a ripulire (e a mantenere ordinato) il database.

Insomma, tra un escamotage e l’altro sono riuscito a guadagnare alcuni secondi sul tempo d’elaborazione iniziale. Non male.

Wordpress 5

Soddisfatto del grandioso risultato che ero riuscito ad ottenere, ho proseguito nell’attività di scrittura. In fondo, era proprio ciò di cui mi volevo occupare.

Poco tempo dopo è stato annunciato Wordpress 5, la major release del celebre CMS che ha introdotto l'editor Gutenberg. Ne ho seguito l’intero sviluppo e, appena è stata rilasciata la versione stabile, l’ho installata. Avevo a mia disposizione un incredibile nuovo set di strumenti: le nuove possibilità espressive erano tantissime.

Il tempo ha continuato a scorrere e, con esso, gli aggiornamenti di Wordpress. Che ha continuato a migliorare e maturare. Dopo tutto il tempo trascorso a rifinire il mio blog, finalmente, era proprio come lo volevo. Eppure…

Switch a Hugo

… avevo voglia di cambiare. Ancora. Ma, questa volta, non si trattava di scrivere un nuovo tema o un plugin completamente personalizzato. Volevo cambiare completamente tecnologia. Nonostante tutto, ero stanco di aggiornare i plugin, il tema e Wordpress stesso; ogni volta che volevo scrivere un nuovo articolo l’editor allocava tantissime risorse, rallentando l’intero sistema.

Insomma, era più il tempo che trascorrevo a far sì che il sito funzionasse che il tempo che passavo a occuparmi del contenuto. E, nonostante mi piaccia programmare e progettare, stava diventando troppo impegnativo: il mio blog deve essere un modo immediato per raccontare. La programmazione e la progettazione - che, come dicevo, mi appassionano - sono adatte per tanti scopi. Ma non per il mio.

Così, ho iniziato a cercare un’alternativa a Wordpress, scartando subito altri software simili. Desideravo qualcosa di completamente diverso e progettato con tecnologie moderne: sono incappato in Hugo, grazie al bravissimo Riccardo Palombo che ha realizzato il suo blog proprio con questo applicativo.

In poco tempo l’ho installato e ho iniziato a studiare la documentazione. Con alcuni giorni di lavoro sono riuscito a modificare un tema, adattandolo alle mie (attuali) esigenze. Ho esportato tutto il contenuto del vecchio blog e l’ho importato in Hugo - con qualche problema, che sto ancora risolvendo.

Markdown

Ho scelto Hugo per vari motivi:

  • è velocissimo. Quasi istantaneo: in pochi millisecondi riesce a compilare l’intero sito;
  • gira sul mio PC: ha un’interfaccia a linea di comando e, quando esporta il sito, genera sito statico. Esattamente: il server non deve far nient’altro che prelevare dal file system la risorsa richiesta e inviarla al client; fine. Le prestazioni sono eccezionali - senza doversi preoccupare di niente - e il carico computazionale sul server è nullo;
  • utilizza il Markdown: è un linguaggio di markup con una sintassi semplice e intuitiva, che viene convertita in HTML in fase di compilazione. Questo significa che posso occuparmi solo del contenuto, lasciando che sia Hugo a convertire il tutto in un blog fruibile da un browser.

A dire il vero, è possibile anche scrivere pagine direttamente in HTML o “mescolare” HTML e Markdown. Riccardo Palombo, ad esempio, ha spiegato come preferisca lavorare direttamente in HTML per gestire tutti i dettagli dell’impaginazione.

Il video di Riccardo Palombo

Il “vecchio” sistema…

A questo punto, quindi, sorge spontanea una domanda: Wordpress è obsoleto?

La risposta, in realtà, è semplice e immediata: no! Wordpress è un CMS che ha un grandissimo potenziale e che permette a chiunque lo voglia, anche senza alcuna conoscenza di programmazione, di crearsi un blog, un sito o un negozio online.

Non solo: Wordpress, ad oggi, è il cuore di milioni di siti Web. C’è una community appassionata di sviluppatori che porta avanti il progetto, completamente open source; ci sono migliaia di temi e oltre 55000 plugin sullo store ufficiale. Si installa in cinque minuti (letteralmente!) ed è la scelta ideale per la maggior parte degli utilizzi.

Se si deve realizzare un blog professionale, magari con più collaboratori, è una scelta ottima: permette di gestire gli utenti e i ruoli (ciò che possono e non possono fare). Può essere personalizzato e adattato alle proprie esigenze, con le giuste competenze (o il giusto team). Inoltre, grazie alla sua natura dinamica, consente di attivare la registrazione degli utenti/lettori, la creazione di forum, social network e newsletter. E, infine ma non per importanza, ha un pannello di amministrazione: si può gestire da qualsiasi computer, a patto di ricordare i propri dati di accesso.

… e il nuovo

Hugo, dal canto suo, può essere eseguito solo dove è installato e dove è presente il progetto - non il sito esportato. Ad ogni modifica si deve ri-compilare il sito e, poi, deve essere caricato sul server Web. Alcuni servizi, come Netlify, lo fanno in automatico prelevando l’ultimo commit da una repository su GitHub; ma, senza appoggiarsi a quelle soluzioni, si deve passare per il caro e vecchio FTP. Insomma, non è né così comodo né adatto a tutti.

Hugo non è idoneo a tutte le situazioni in cui Wordpress eccelle: è, sotto questi aspetti, più “limitato”. Ma io non avevo bisogno di tutte quelle funzionalità di Wordpress che, invece, sono perfette per tantissimi altri utilizzatori; volevo provare una nuova tecnologia - e Hugo è compatibile con il mio utilizzo.

E chissà, in futuro potrei cambiare nuovamente: come ha detto Riccardo, “già mi viene voglia di rifare tutto con Gatsby e React”.