Ho cominciato a frequentare CMS per lavoro e passatempo più di vent’anni fa, quando iniziavano ad uscire i primi sistemi hosted come Blogger (o Splinder per chi se lo ricorda) o self-hosted come Movable Type (che esiste ancora, ho appena scoperto!) o Wordpress ai suoi albori e per molti anni a seguire, fino ai moderni headless come Strapi (che uso abitualmente per lavoro) o Payload. Per i miei progetti personali ero però alla ricerca di una soluzione più light, rispetto a come sono diventati questi CMS, ormai stracarichi di complessità e di feature, ingordi di manutenzione e perennemente a rischio virus, spam o collassi da plugin scritti male. Mi sono quindi orientato verso soluzioni SSG (static site generation), tra le quali la più interessante mi è sembrata Hugo
Cos’è Hugo
Hugo è un framework per la generazione statica di siti web, molto leggero e funzionale, scritto in Go. Si basa su temi (relativamente semplici da implementare), e nel suo essere leggero ed efficiente è in realtà molto potente, e consente un notevole livello di personalizzazione dei layout. Sostanzialmente funziona così: si scrivono articoli e post in formato markdown, e si lancia una build che genererà le pagine statiche del sito sulla base delle indicazioni di layout presenti nel tema scelto, e di un file di configurazione in formato YAML o TOML , che si incarica di fornire al motore di build variabili di contenuto o di funzione. L’uso più classico prevede build in locale per i test, e deploy su Netlify o simili piattaforme cloud (che si prendono in carico anche la gestione della build, a partire da contenuto ospitato su repo Github).
Come si installa Hugo
Perché sia possibile farlo funzionare in locale, occorre fare poche cose:
Installare Hugo (per Mac e Linux si fa presto con brew):
brew install hugo
Creare un nuovo sito:
hugo new site sitename
Posizionarci sulla directory dove abbiamo creato il sito
cd site
Installare un tema come submodule da Github (qui indichiamo il tema in uso qui sul blog)
git submodule add https://github.com/biccio/hugo-kraft-masonry.git themes/hugo-kraft-masonry
Inserirne il riferimento nel file di confgurazione hugo.toml
echo "theme = ‘hugo-kraft-masonry’” >> hugo.toml
Per lanciare il sito in locale poi basterà poi questo comando
hugo server
e potrete vedere il sito funzionante su localhost porta 1313. Semplicissimo.
Il tema Kraft Masonry
Ho già un’installazione attiva di Hugo per il mio sito di viaggi in bici Ciclogravelista, per il quale uso l’ottimo tema Hextra, ma per riavviare questo mio blog personale (che tra alti e bassi esiste dal 2001!) avevo voglia di farmi un tema da solo, basandolo sul principio della griglia Masonry. Così ho lavorato di vibe coding con Claude, e il risultato è questo tema, creato in un’oretta circa, su cui ho costruito il blog, e che ho deciso di mettere a disposizione di chi volesse usarlo per i propri siti.
Limiti di Hugo (e degli SSG in generale)
Il problema più grande in realtà di tutti i SSG e proprio l’assenza di un CMS, e questo rende meno facile manutenere un sito così realizzato, per una persona meno esperta o senza il proprio computer disponibile per fare i commit su Github. A questo problema si può ovviare installando Decap, un CMS open source installabile in qualunque sito i cui contenuti sono git based. A me non convince ancora molto, ma se evolvesse nella giusta direzione potrebbe contribuire a trasformare il paradigma SSG in un’ottima alternativa a un CMS tradizionale per utenti meno esperti.
