Perché scrivere un blog? Dove pubblicare i propri contenuti? Che strumento utilizzare per gestirli? Sono uno sviluppatore web: faccio tutto da me o mi affido a un CMS o una piattaforma già pronta?
Era da un po' di tempo che mi frullava in testa l'idea di mettere su un blog personale. Perché? La risposta è: perché no?
Lo spunto per il primo contenuto me l'ha dato un "argomento" poco tecnico che ha sempre attirato la mia attenzione: la pronuncia sbagliata di termini inglesi usati quotidianamente sul lavoro.
Così, alla veneranda età di 45 anni, ho registrato questo dominio, ho scelto quale strumento utilizzare e ho pubblicato il mio primo post proprio su quell'argomento.
Apprezzo molto chi ha qualcosa da dire e porta avanti questa attività con passione e costanza, trovando il tempo di pubblicare contenuti che eventualmente possano essere utili a qualcuno e, perché no, anche a sé stessi. Non mi riferisco a chi scrive contenuti sul web per monetizzare (nulla di sbagliato) o per autocelebrarsi (non condivido troppo, ma nulla di male neanche in questo caso), ma a chi lo fa per altri motivi. Scrivere può risultare utile sotto vari aspetti:
Oggigiorno la scelta è sterminata.
C'è davvero l'imbarazzo della scelta: piattaforme già pronte dedicate al blogging, framework scritti in ogni linguaggio, generatori di siti statici, CMS tuttofare sempre più perfezionati, CMS flat-file, headless e chi più ne ha più ne metta.
Non credo ci sia uno strumento in assoluto migliore di altri: come al solito, la risposta è l'antipatica "dipende". Da cosa? E' ovvio (come direbbe Trimagasi, uno dei protagonisti dello splendido film "Il buco"): dalle proprie esigenze (e dalle proprie conoscenze).
Le mie, erano/sono queste:
Sulla base di queste esigenze, ho vagliato mentalmente una serie di possibili strumenti che alla fine ho scartato. Di seguito una carrellata delle possibilità che ho escluso e le motivazioni.
Il web pullula di piattaforme / community orientate alla pubblicazione di contenuti a tema (sviluppo web / software, nel mio caso). Non sto nemmeno ad elencarle: se stai leggendo questo articolo, è molto probabile che tu le conosca già.
Pro: è sufficiente registrarsi e pubblicare; potenzialmente si può avere molta visibilità
Contro: pubblicare su una piattaforma di cui non si è proprietari che, magari con scarsa probabilità, potrebbe anche sparire; nessuna o limitata possibilità di personalizzare UI, struttura e altri aspetti tecnici
Utilizzo professionalmente PHP dal 2003 (ho iniziato con la versione 4.x) e Laravel quotidianamente ormai da parecchi anni (versione 4.x anche in questo caso), per cui una possibile scelta sarebbe stata quella di usare proprio Laravel e scrivermi un prodotto completamente personalizzato, ottimizzato e ritagliato sulle mie esigenze.
Pro: soluzione molto invitante, che mi consente di utilizzare gli strumenti che meglio conosco. Controllo completo su ogni aspetto dell'applicazione, delle componenti utilizzate e dell'infrastruttura
Contro: richiede troppo tempo, impegno, manutenzione. Lo scopo è pubblicare contenuti, non scrivere codice e mantenere un altro progetto: lo faccio già per lavoro
Pro: utilizzare un prodotto già pronto, basato su un linguaggio e framework che conosco molto bene
Contro: non ho trovato una soluzione matura e completa che mi abbia spinto ad approfondire e adottare il prodotto (fa eccezione Statamic, di cui parlo più sotto)
Vale quanto ho già scritto più sopra: il mio scopo era individuare uno strumento comodo e semplice che mi consentisse di gestire agevolmente contenuti, senza "perdere tempo" a installare, configurare, combattere con errori di runtime, fare debug, eccetera.
Utilizzare un prodotto, un linguaggio o uno stack tecnologico nuovo (o già usato in precedenza, ma sporadicamente) è sicuramente istruttivo, stimolante e utile; tuttavia, è molto probabile che i problemi da affrontare aumentino, si debba investire parecchio tempo a capire come risolverli e, soprattutto, si rischi di sottovalutare aspetti legati alla sicurezza.
Pro: il prodotto più adatto alle proprie esigenze potrebbe essere quello scritto in un linguaggio che usiamo poco o che ancora non conosciamo
Contro: si rischia di "perdere tempo" in questioni tecniche e perdere di vista l'obiettivo principale
Parliamo del CMS più diffuso al mondo: semplice da usare (soprattutto per chi non è uno sviluppatore), ricco di funzionalità, nato proprio per realizzare blog, con un ecosistema ricchissimo di plugin e temi.
Praticamente c'è una soluzione pronta (quasi sempre gratuita) per ogni problema che si possa presentare. Pur essendo nato per realizzare blog, nel tempo si è evoluto al punto da poter essere utilizzato per realizzare siti e applicazioni di ogni genere: "gestionali" (virgolette d'obbligo), e-commerce, siti istituzionali, landing page, CMS headless accoppiati ad altre soluzioni (es. Astro), eccetera. La sua versatilità a mio parere è anche il suo punto debole: il fatto che sia possibile realizzare quasi tutto, non significa che il risultato sia ottimale, soprattutto dal punto di vista dello sviluppatore. Per ottenere lo scopo desiderato, è probabile che si dovranno installare svariati plugin (o scriverne alcuni), dovendo scendere a compromessi ("non è proprio come me lo immaginavo, ma andrà bene lo stesso...") e finendo per ottenere prestazioni non proprio ottimali, tempi di risposta poco brillanti, pagine appesantite da markup generato da qualche plugin su cui si ha poco o nessun controllo, eccetera. C'è una soluzione a tutto ciò, ma richiede molto tempo da impiegare in ottimizzazioni tecniche e non, "trucchi del mestiere" e accorgimenti che si acquisiscono dopo aver smanettato con WordPress per parecchio tempo, preferibilmente conoscendo in modo approfondito le sue API e il suo Codex. Riassumendo: bisogna padroneggiare lo strumento.
Ho usato WordPress relativamente poche volte e confesso di non essere un esperto in materia, ma nemmeno un fan: non amo com'è scritto il codice (procedurale, sintassi snake case, ecc.) e alcuni dei concetti che stanno alla base del suo funzionamento, per cui ho immediatamente escluso anche lui; codice a parte, non apprezzo particolarmente il prodotto in sé, nonostante la versatilità e la ricchezza di funzionalità. Inoltre, volevo provare qualcosa di nuovo.
Statamic è un ottimo prodotto: maturo, flessibile, accattivante, mantenuto e costantemente aggiornato, con un buon ecosistema di plugin e temi già pronti. E, sotto il cofano, c'è Laravel (con la possibilità, volendo, di utilizzare Blade come template engine al posto di Antlers), il che lo rende un ottimo candidato ad eventuali personalizzazioni ben scritte.
Di default Statamic utilizza la modalità flat-file, ma è anche possibile utilizzare un database.
Non è diffuso come WordPress né probabilmente lo sarà mai, non ha la stessa quantità mostruosa di plugin, temi e integrazioni di ogni genere, ma per uno sviluppatore Statamic è molto molto meglio, per tanti motivi.
Dovessi dare una definizione personale di Statamic, sarebbe questa:
WordPress scritto molto meglio, con tutto ciò che su WordPress spesso è un plugin
In effetti Statamic è stata la mia prima scelta. Allora perché l'ho scartato? Semplice: il supporto multisito (che comprende anche il multilingua) richiede una licenza professionale a pagamento.
Intendiamoci: i 275 dollari richiesti per la versione Pro (primo anno, poi si passa a 65 dollari) valgono fino all'ultimo centesimo, specialmente se viene utilizzato per sviluppare una soluzione professionale dove ci sia budget. Tuttavia, nel mio caso, parliamo di un piccolo blog personale, dove il budget è... Zero. Il mio ragionamento è opinabile? Certamente. Se un prodotto a pagamento semplifica e migliora la vita dello sviluppatore e la sua cosiddetta DX (Developer eXperience), ben venga la spesa! Tuttavia, nel mio caso, ho ritenuto che il gioco non valesse la candela.
Alla fine ho scelto Grav CMS. Come mai? Perché soddisfa le esigenze che ho elencato:
Ma non finisce qui. Ecco una lista di caratteristiche presenti su Grav CMS:
e molto altro.
Per quanto riguarda l'aspetto, non avevo grosse esigenze e mi sono limitato a utilizzare il tema base, modificandolo leggermente; volendo, è possibile realizzare un proprio tema da zero (oppure estendendone uno esistente), utilizzando il template engine Twig e scegliendo il proprio framework CSS.
Devo dire di essere rimasto piacevolmente stupito da questo CMS. Si adatta perfettamente alle mie esigenze, senza inutili complicazioni, e offre ben più di quanto mi serva per gestire questo blog.
Per il momento si sta comportando egregiamente e sembra che lo sviluppo venga portato avanti.
Come ho premesso, a mio parere non esiste uno strumento universale migliore di tutti gli altri, che si presti a soddisfare ogni tipo di esigenza e gusto: ciò che per me risulta ottimale potrebbe non esserlo per un'altra tipologia di utente. Tuttavia, se la necessità è, ad esempio, creare un blog personale, consiglio vivamente di provare Grav CMS. Detto così, suona un po' male e lo sminuisce... Rifaccio: il prodotto è ottimo e davvero versatile. Trovo che possa prestarsi bene come strumento per realizzare progetti web di vario tipo.