Qualche mese fa, quando ho deciso di rimettere in piedi il mio blog professionale, ero alla ricerca di uno strumento che mi permettesse di costruire un sito veloce, sicuro e facile da gestire.

Dopo molte ricerche e altrettanti benchmark, ho deciso di provare anche Hugo, il mitico generatore di siti statici open-source sviluppato in Go.

La sua promessa di essere “il framework più veloce al mondo per la costruzione di siti web” mi aveva decisamente intrigato.

La mia esperienza con Hugo

La velocità di Hugo è davvero impressionante. Lavorando su una demo molto “pesante” ho potuto constatare di persona come Hugo sia in grado di compilare e pubblicare siti dí grandi dimensioni in pochi secondi, rendendo il processo di sviluppo e pubblicazione estremamente fluido e senza intoppi.

Questa rapidità si traduce anche in un’esperienza utente eccellente lato frontend, con tempi di caricamento delle pagine quasi istantanei.

The world’s fastest framework for building websites
The world’s fastest framework for building websites

La natura statica dei siti generati con Hugo offre un livello di sicurezza assolutamente superiore. Senza la necessità di un database o di script lato server, molte delle vulnerabilità comuni nei siti dinamici vengono completamente eliminate.

Un progetto ambizioso con una piccola, grandissima pecca

Hugo è nato nel 2013 per iniziativa di Steve Francia, con l’obiettivo dichiarato di realizzare uno strumento potente e veloce per la creazione di siti web statici. Nel 2015, Bjørn Erik Pedersen ha preso le redini del progetto, continuando a svilupparlo e migliorarlo.

Nonostante gli sforzi della comunità, negli ultimi anni lo sviluppo di Hugo si è però rallentato sensibil mente. La sua quota di mercato è infatti diminuita, passando dallo 0,096% allo 0,085% per tutti i siti. Certo, sembrano numeri assolutamente ridicoli, se paragonati alle quote di mercato di WordPress o altri CMS più mainstream, ma Hugo ha peculiarità che lo rendono comunque interessantissimo in molti contesti particolari.

Unica vera pecca, la mancanza di un backend per la gestione dei contenuti da browser, cosa che lo rende di fatto poco utilizzabile da mobile. Certo, è possibile integrare un CMS headless come Cockpit e affini, ma di fatto questa funzionalità manca… e qualsiasi soluzione compensativa non fa che evidenziarne i limiti.

3… 2… 1… Go

Go, spesso chiamato Golang, è un linguaggio di programmazione open-source sviluppato da Google a partire dal 2007 e lanciato ufficialmente nel 2009. Progettato per combinare l’efficienza del linguaggio C con la semplicità e la leggibilità di Python, Go è noto per la sua sintassi chiara e concisa, che facilita la scrittura di codice pulito e mantenibile.

The Go Programming Language
Go is an open source programming language that makes it simple to build secure, scalable systems.

Una delle caratteristiche distintive di Go è il supporto integrato per la programmazione concorrente attraverso le “goroutine”, che permettono l’esecuzione simultanea di funzioni, rendendolo ideale per applicazioni distribuite e servizi web ad alta concorrenza.

Inoltre, Go offre una gestione automatica della memoria tramite garbage collection e una compilazione rapida, risultando in eseguibili efficienti e performanti.

Grazie a queste caratteristiche, Go è ampiamente utilizzato nello sviluppo di applicazioni web, servizi cloud e sistemi di rete, offrendo un equilibrio tra prestazioni elevate e facilità d’uso.

Installazione di Hugo e sviluppo in locale

Installare Hugo è un processo semplice e diretto.

Per gli utenti macOS e Linux, è possibile utilizzare Homebrew:

brew install hugo

Per gli utenti Windows, si può ricorrere a Chocolatey:

choco install hugo-extended -confirm

Una volta completata l’installazione, è consigliabile verificare che tutto sia andato a buon fine controllando la versione di Hugo:

hugo version

Per avviare un nuovo progetto con Hugo, basta eseguire:

hugo new site nome_del_sito

Dopo aver creato il sito, è possibile aggiungere un tema. Ad esempio, per aggiungere il tema “Ananke”:

cd nome_del_sito
git init
git submodule add https://github.com/theNewDynamic/gohugo-theme-ananke.git themes/ananke
echo 'theme = "ananke"' >> hugo.toml

Per creare un nuovo post:

hugo new posts/il-mio-primo-post.md

Per visualizzare il sito in locale durante lo sviluppo, è sufficiente avviare il server di sviluppo integrato:

hugo server -D

Questo comando renderà il sito accessibile all’indirizzo http://localhost:1313, permettendo di vedere in tempo reale le modifiche apportate.

Riflessioni personali

Nonostante queste sfide, credo fermamente negli intenti e nel metodo alla base di Hugo. La filosofia di fornire uno strumento open-source, veloce e sicuro per la creazione di siti web è lodevole. La comunità che supporta Hugo è appassionata e dedicata, e sono fiducioso che, con il giusto sostegno, il progetto possa continuare a crescere e adattarsi alle esigenze in evoluzione del web.

In definitiva, la mia esperienza con Hugo è stata estremamente positiva e devo dire che, se la mia scelta è ricaduta su Ghost, è principalmente per la comodità di poter scrivere nuovi articoli direttamente da cellulare, senza dovere per forza utilizzare la linea di comando. per tutto il resto: gran bel prodotto Hugo!

Condividi questo post