Lo strumento giusto per costruire il proprio sito web
L'importanza di scegliere il modo giusto, ovvero più adatto ed ed efficace, per pubblicare i propri contenuti sul web, anche se in realtà il contenitore dovrebbe essere soltanto un aspetto marginale rispetto ai contenuti.

Eccoci nuovamente qua a parlare del software più adatto a pubblicare i propri pensieri sul Web. Come è ormai chiaro, passo più tempo a decidere quale strumento utilizzare che a pubblicare contenuti di qualsiasi utilità, e questa cosa sta diventando una sorta di ossessione. L'immagine di copertina, che ho trovato qui e che è stata già usata da Soutpaw sul suo blog, spiega in maniera chiarissima qual è il mio problema.
WordPress
In passato era tutto molto più semplice: conoscevo soltanto WordPress e non c'era necessità di stare lì a pensare troppo a cosa scegliere... Poi, già con il proliferare dei temi, la cosa si è fatta più complicata, ma una volta trovato il tema ideale (più bello, più comodo o più facile da usare) era tutta discesa.
GDPR
Ma poi venne il GDPR a complicare le cose. Il solo fatto di avere la possibilità di ospitare commenti, richiedendo l'email all'utente, è diventato una specie di incubo. Bisogna pensare e scrivere una privacy policy che non sia semplicemente un copia&incolla di una policy trovata in giro sulla rete, bisogna esplicitare i motivi per i quali si richiedono i dati personali, informare gli utenti di quanto tempo tali dati vengono conservati, dare la possibilità di richiedere facilmente tutti i dati acquisiti e anche di richiederne la cancellazione.
E poi bisogna stare attenti se per caso si fa uso di qualche plugin fatto all'acqua di rose, che magari ha un bug che permette l'accesso non autorizzato a tutti i dati salvati nel database. In caso di data breach bisogna informare gli utenti e il Garante, descrivere il tipo di furto di dati subiti e porre rimedio. Magari qualcuno potrebbe anche chiedere un risarcimento danni, chi lo sa...
Altri CMS fatti con PHP
Oltre a WordPress, esistono un'infinità di altri Content Management Systems scritti in PHP e utilizzabili sulla stragrande maggioranza dei provider di hosting web condiviso. Tra questi, quello che ho provato con maggiore insistenza è sicuramente TextPattern, che ha la peculiarità di separare nettamente la logica del backend dalla parte frontend, grazie al linguaggio Textile. Tuttavia lo sviluppo di questo CMS procede abbastanza a rilento e, almeno l'ultima volta che l'ho usato, mancava ancora di alcune feature che ritengo essenziali.
Ci sono poi software più complessi, usati per realizzare portali di dimensioni ragguardevoli che ospitano molte tipologie di contenuti. Tra questi i più famosi sono senz'altro Joomla e Drupal che però, a dispetto della loro storia e longevità, contano solo una piccola frazione di installazioni rispetto a sua maestà WordPress.
Static Sites Generators
In queste condizioni, soprattutto se non si ha necessità di interagire con gli utenti tramite commenti, contact form, content subscriptions, ecc., tanto vale realizzare un sito web statico, vale a dire alla vecchia maniera, fatto di solo HTML, CSS e un po' di JavaScript qua e là, ma senza esagerare.
Jekyll
Fu così che tanti anni fa, leggendo un numero di Hacker Journal, sono venuto a conoscenza dell'esistenza di Jekyll, uno dei pionieri tra i generatori di siti statici, ovvero di programmi in grado di produrre un sito web a partire da una serie di file di testo.
La possibilità di scrivere in Markdown, di avere tutti i contenuti memorizzati in file di testo semplice, la perfetta integrazione con strumenti di version control come Git, faceva di Jekyll lo strumento perfetto per le mie esigenze. E pazienza se i temi non erano proprio fantastici o all'ultima moda... d'altra parte io di CSS e JavaScript non ne so niente e quindi potevo soltanto accontentarmi.
Inoltre il vantaggio di poter ospitare il mio sito anche su un hosting economico mi permetteva di risparmiare i soldi e il tempo per la gestione di un VPS.
Col passare del tempo, però, Jekyll ha iniziato a starmi stretto, e l'impossibilità di produrre contenuti direttamente sul sito senza passare dal mio computer iniziava ad essere limitante. Avevo nostalgia di WordPress e della sua applicazione mobile, con la quale potevo scrivere un post anche dal telefonino mentre viaggiavo in treno...
GitHub e GitLab pages
È stato allora che ho iniziato a valutare la possibilità di pubblicare il mio sito su GitHub o GitLab, che offrono hosting gratuito per siti web statici, nonché la possibilità di adoperare SSG che prendono i contenuti direttamente da un repository ospitato sulla stessa piattaforma.
Bello, eh?! Ma fare affidamento a servizi di terze parti per pubblicare le mie cose non mi faceva proprio impazzire.
Hugo, Gatsby & Co.
Dopo un temporaneo quanto fugace ritorno a WordPress, ho iniziato a prendere in considerazione altri SSG basati su tecnologie diverse rispetto a Jekyll, che è fatto con Ruby.
Hugo (realizzato in Go) e Gatsby (JavaScript) sono due esempi, ma ce ne sono veramente tanti altri. Comunque per me continuavano ad avere tutti lo stesso problema di Jekyll.
Ghost
E alla fine arriva Ghost. Un CMS bello, veloce, minimale, pulito, con un editor Markdown comodissimo; un CMS senza fronzoli e senza un sistema nativo per i commenti. Magari inizialmente poteva risultare ostico, ma con un po' di pratica avevo iniziato a farci più o meno tutto quello che mi serviva.
Certo, la gestione delle immagini lascia parecchio a desiderare, ma tanto i miei articoli sono fatti prevalentemente di chiacchiere... Certo, aggiungere la funzione di code highlight è una cosa un po' contorta, richiede di caricare risorse JavaScript esterne, a meno di non essere capaci di modificare il proprio tema per includerle localmente. Senza dimenticare che, per la versione self-hosted, c'è anche bisogno di un VPS...
Poi però anche Ghost ha preso una brutta piega, sono iniziati nuovi rilasci a ripetizione, modifiche sempre più frequenti al backend, l'editor Markdown è stato trasformato in qualcosa di molto più "ricco" ma anche complicato, e così di questo passo.
Dunque, nemmeno Ghost mi andava più bene...
Fatti i CMS tuoi!
C'è stato un momento in cui mi sono detto "Mo basta! Mi faccio un sito da zero costruendo il mio CMS!", e quindi ho cominciato a smanettare con Codeigniter, Django, Ruby on Rails, Flask e chi più ne ha più ne metta! Ovviamente è stato tutto tempo sprecato, che però mi è stato utile per capire quale mole di tecnologie bisogna padroneggiare per realizzare un prodotto del genere.
Altri SSG e CMS locali
Alla fine sono tornato a prendere in considerazione altri generatori di siti statici, più o meno complessi e flessibili. C'è Bridgetown, che rappresenta in qualche modo l'erede di Jekyll, e poi ci sono un'infinità di strumenti scritti in Python, tra cui Pelican, Lektor, Wagtail... per non parlare di Publii (di cui ho parlato in un precedente articolo), un vero e proprio CMS, con una bella interfaccia grafica, che si installa sul proprio computer e che permette di costruire il proprio sito e di pubblicarlo successivamente su varie piattaforme, compreso il classico hosting web tramite il vetusto protocollo FTP.
Un elenco più dettagliato ed esaustivo di questi strumenti lo trovate sul sito Jamstack, per cui non mi prolungo ulteriormente.
Di tutti i software citati in questa sezione, quello che mi interessa maggiormente è Bridgetown, perché è fatto con Ruby, eredita da Jekyll (ne è un fork) e perché è possibile realizzare i propri layout usando sia Liquid che ERB.
Obsidian
Qualche giorno fa, in preda alla disperazione, ho provato ad utlizzare Obsidian per la scrittura degli articoli e un apposito plugin per pubblicarli automaticamente su Ghost. L'idea è molto bella e interessante, ma purtroppo il plugin non funziona del tutto bene e non credo di avere il tempo e le capacità necessarie per farne il debug e sistemarlo. Pazienza.
In conclusione
Come già detto nell'introduzione, faccio fatica a separare il contenuto dal contenitore. Spesso, quando decido di cambiare CMS mi capita anche di buttare nel secchio tutti i contenuti pubblicati in precedenza e di ricominciare da zero. E questo è male.
Sai, faccio sempre confusione tra bene e male!
Ad ogni modo, quando ho ripreso a scrivere su questo blog mi sono autoimposto di mantenere il CMS scelto all'inizio, ovvero Ghost, promettendomi di chiuderlo definitivamente se per caso mi fosse balenata nuovamente in testa l'idea di cambiare.
Vedremo cosa ha riservato il destino per questo sito...