Ghost vs WordPress

Con la nuova versione rilasciata a metà marzo, Ghost è finalmente divenuto una valida alternativa a WordPress. Non che prima non lo fosse, ma con le precedenti versioni il confronto era sempre appannaggio del secondo. Ora invece out of the box Ghost è una più che valida alternativa per la gestione di una pubblicazione online, con eventuale newsletter e membership, anche se non offre la stessa estensibilità di WordPress, la community è ancora un piccola e non offre il supporto che puoi invece attenderti da quella di WordPress.

Cos’è Ghost e per chi è adatto

Ghost è un cms (content management system) nato nel 2013 in seguito a una campagna su Kickstarter con l’intento di sviluppare i migliori strumenti open source per giornalisti, blogger e scrittori indipendenti. Più in generale, chiunque abbia o voglia sviluppare una pubblicazione con annessa audience. La piattaforma consente di pubblicare testi, foto, audio e video, e questo consente di usarla per scrivere un blog, eventualmente anche con più autori, una newsletter, pubblicare un podcast o una serie di video, o anche vendere un corso online. La principale differenza con WordPress è che Ghost include di default strumenti per gestire newsletter e membership, ovvero un sistema per consentire ai lettori di iscriversi (gratis o a pagamento) per avere accesso a contenuti esclusivi.

Cos’è WordPress, e perché è nato Ghost

WordPress è un cms open source nato nel 2003. Inizialmente era pensato e usato soprattutto per creare e gestire blog, ma con il tempo è divenuto una piattaforma per creare siti web che spaziano dal blog all’e-commerce, dal sito di rappresentanza a corsi online. Con WordPress ci puoi fare più o meno qualunque cosa, ma questo richiede di installare diversi componenti esterni sotto forma di plugin. Questo, insieme alle tecnologie usate per renderlo possibile, genera non pochi problemi nella gestione e soprattutto nell’ottimizzazione dei siti. Però offre un infinito numero di possibilità, e non a caso un terzo dei siti internet di tutto il mondo ha oggi WordPress sotto il cofano.

Questo essere multipurpose, oltre ai problemi di sicurezza che presenta e le ottimizzazioni richieste dalla lentezza insita nel mezzo, ha portato alla nascita di diversi progetti negli ultimi anni, tutti più o meno orientati alla creazione di siti tramite builder o pubblicazioni statiche. Ghost si è concentrato sul blogging e le pubblicazioni online, nella stessa direzione che nel 2017 prese Substack (oggi è quasi un unicorno) con le newsletter a pagamento e che ha portato Twitter a comprare Revue nel 2021. Non a caso oggi Ghost sta raccogliendo molti di coloro che stanno lasciando Substack in cerca di una maggiore indipendenza, brand, oppure in opposizione alle politiche di Substack, ma questo è un altro discorso.

Differenze out of the box

La principale differenza strutturale fra Ghost e WordPress è che il primo è sostanzialmente un headless cms, praticamente una collezione di file json che tramite API può essere interrogato dall’esterno. Ghost, che è scritto completamente in Javascript, viene distribuito insieme a un semplice pannello di amministrazione per gestire articoli, pagine, tag, utenti, e altre impostazioni del blog. I temi di Ghost sono basati su Handlebars, un semplice e potete linguaggio di programmazione basato su templating. Tutto questo rende Ghost estremamente veloce: 1900 volte più veloce di WordPress, a detta loro, senza bisogno di ottimizzazioni.

Entrando nei dettagli, Ghost differisce da WordPress soprattutto per il numero di feature di cui è dotato, e che su WordPress richiederebbero l’installazione di plugin spesso a pagamento. Ecco una lista della dotazione out-of-the-box di Ghost:

  • SEO: oltre a quella base per ogni singolo post, che consente di avere un titolo in pagina diverso dal titolo per Google, Ghost ha una XML sitemap integrata, consente di impostare canoncal url, include i microformat di Schema.org, e ha le Google AMP pages integrate.
  • Social: Facebook Open Graph e Twitter card sono integrate, così che puoi impostarli per ogni singolo post insieme alla SEO. Puoi anche impostare foto e titoli diversi a seconda del canale.
  • Newsletter: Ghost è dotato di CTA per invitare i lettori a iscriversi alla newsletter, e consente di inviare loro in automatico ogni articolo che viene pubblicato. Puoi scegliere di creare contenuti esclusivi per la newsletter che non appariranno sul sito, o che appariranno dietro a un messaggio che invita a registrarsi per leggerli. La dashboard di Ghost offre indicazioni sul tasso di apertura delle email da parte di ogni utente. Per l’invio delle email è necessario collegare un account Mailgun, a meno che la funzione non sia compresa nell’hosting scelto, come nel caso di Ghost(Pro), l’hosting di Ghost.
  • Membership/Paywall: Ghost consente di creare una sezione dedicata ai membri del sito, che possono iscriversi gratis o a pagamento (abbonamento mensile o annuale). È possibile scegliere per ogni articolo se questo sia pubblico, solo per gli iscritti gratuiti o per i paganti. È anche possibile dividere l’articolo in due parti: una preview pubblica, che fa SEO,  e una parte dietro paywall.
  • Certificato SSL: Ghost utilizza Let’s Encript per generare e includere un certificato di sicurezza, quanto mai necessario sia lato SEO che se si vogliono gestire dati di pagamento.
  • Immagini: con Ghost è possible usare immagini normali, large, o full screen in ogni pagina, così come creare gallery. Le immagini sono servite responsive e attraverso lazy-loading (ovvero caricate solo quando necessarie, per velocizzare la pagina) e ottimizzate in base al dispositivo.
  • Cookieless: gli unici cookie usati da Ghost sono quelli per i login di utenti e iscritti alla membership. Ovviamente, uno ci può aggiungere tutto quello che vuole.
  • Multilingua: è sufficiente editare un file per pubblicare in più lingue senza problemi di SEO e mantenendo separati gli archivi.
  • Code injection: Ghost offre la possibilità di inserire codice (per esempio i tracking di Google Analytics o i pixel dei social) nella head o nel footer dell sito. Di base non ci sono tracking code, cosa che rende Ghost GDPR compliant di default. Ovvio che poi farcelo restare è compito dell’utente.

Ghost non ha i commenti, e condivido pienamente questa scelta. Si possono però aggiungere con Disqus o soluzioni come Cove che permettono di attivare la possibilità di commentare solo agli iscritti (gratuiti o paganti).

Manca, di default, la possibilità di caricare sul sito file statici, come per esempio un PDF, ma questo si può facilmente ovviare con un Google Drive, Dropbox, o Amazon S3, o se il sito è self-hosted salvando i file in una cartella dello stesso, o ancora meglio in un sottodominio così da mettergli davanti una CDN. O ancora, integrando Amazon S3 o Google Drive come storage adapter, ovvero come spazio dove salvare e gestire tutti i contenuti del proprio sito.

La pecca forse più grande di Ghost è non avere un’admin multilingue. È vero che è possibile tradurlo a mano (temo però vada poi rifarlo a ogni aggiornamento), ma sarebbe stato utile avere l’admin in altre lingue. Per quanto riguarda i temi invece, la traduzione è super facile, e molti temi sono multilingue. Se manca l’italiano, aggiungerlo in un tema multilingue è un gioco da ragazzi. Più laborioso, ma niente di impossibile, se il tema è in una sola lingua (in sostanza, si tratta di aggiungere un tag a tutti i testi che vanno tradotti e inserire le traduzioni in un apposito file).

L’admin e l’editor di Ghost

A differenza di quello di WordPress, l’admin di Ghost è orientato alla produzione dei contenuti più che alla gestione del sito. La dashboard offre una visione d’insieme sugli iscritti al sito, gli abbonati paganti e la crescita dei ricavi generati da questa, più un po’ di informazioni sul mondo Ghost. Il pannello dell’admin è costruito attorno ai post, per cui abbiamo draft, scheduled e published. Sotto a questo la gestione di pagine e tag (in Ghost non ci sono le categorie, ma esistono le collezioni in cui possiamo includere o escludere tag). Infine, link al gestionale della membership, dello staff, e delle integrazioni, che vedremo più avanti. Le altre configurazioni sono nascoste all’interno del menu Settings. Rispetto a WordPress, si nota la semplicità di gestione del pannello, che è costruito attorno alla produzione e gestione del contenuto, dei suoi produttori e consumatori.

L’editor di Ghost non è molto differente da quello di WordPress, ma anche in questo caso è molto più pulito e semplice da usare, con la barra di formattazione che si attiva quando selezioniamo un testo, e senza mille configurazioni per ogni elemento. Originariamente Ghost consentiva di scrivere in Markdown. Lo fa ancora, solo che il Markdown viene convertito automaticamente in rich text. È possibile continuare a scrivere in Markdown senza che questo venga convertito utilizzando la card Markdown. Le card sono grosso modo l’equivalente dei blocchi di WordPress, anche se più per logica d’uso che altro. Sono disponibili le seguenti card:

  • immagine;
  • galleria;
  • Markdown;
  • HTML;
  • linea separatrice;
  • bookmark, per embeddare un link con la propria preview;
  • video (YouTube e Vimeo);
  • audio (Spotify e Soundcloud);
  • Twitter;
  • embeddable url, che consente di embeddare qualunque cosa offra questa opzione.

Ci sono poi due special card: public preview, per generare del contenuto pubblico all’interno di un articolo riservato agli iscritti (paganti o meno, a seconda della visibilità attribuita al post); ed email content, visibile solo all’interno dell’email che viene inviata se scegliamo di inviare il post via newsletter. Scrivere un numero della newsletter non è infatti diverso da scrivere un articolo. Possiamo impostare la visibilità dell’articolo perché sia visibile solo agli iscritti e mandarlo solo a loro, oppure rendere l’articolo pubblico e inserire un testo speciale che vedranno solo gli iscritti e solo all’interno della newsletter, non sul sito.

C’è infine un’altra card, che in realtà proprio una card non è, ma è una funzione per creare dei blocchi riusabili che possono contenere qualunque elemento (testo, immagini, video…) e possono essere usati anche, per esempio, per creare una scaletta per un post o una newsletter, inserire una call to action, o una gallery di immagini.

Altre differenze tecniche

In termini di sicurezza, Ghost è molto più avanti di WordPress. Il primo infatti include di default molte funzioni che per avere in WordPress è necessario installare uno o più plugin, non sempre completamente gratuiti. Eccone alcune facili da capire, almeno per me:

  • certificato SSL generato in automatico tramite Let’s Encrypt (qualsiasi servizio di hosting oramai lo mette a disposizione per WordPress, ma non sempre viene installato di default);
  • permessi standard, non devi essere root per gestire il sito;
  • protezione dagli attacchi brute force, con login attempt limitati a 5 per ora per IP, di default;
  • accesso utenti tramite token usa e getta e non password;
  • password hashing.

Community ed estensibilità

Credo che non esista progetto open source al mondo con una community migliore o comunque più grande di quella di WordPress. Ghost non rivaleggia con questo neppure alla lontana. Ha il suo piccolo forum di sviluppatori, un ridotto, ma in crescita, marketplace di temi (diversi gratuiti) e qualche centinaio di temi venduti su Theme Forest a prezzi che vanno da 19 a 149 dollari. Come WordPress, Ghost mette a disposizione un tema di partenza che si può modificare a piacere, e il fatto che il tema sia scritto in un linguaggio semplice e potente come Handlebars rende le modifiche fattibili a qualunque smanettone.

Sul fronte dell’estensibilità, leggi plugin, il discorso è un po’ più complicato. Lungi dall’avere a disposizione la qualunque come in WordPress, Ghost ha una lista di integrazioni ufficiali  che copre diversi settori (automation, tracking, marketing, scrittura, ecommerce…) e consente di integrare qualunque servizio offra un codice da inserire nella head o nel footer del sito, blocchi HTML, CSS e JavaScript da embeddare, o API a cui collegarsi.

Di seguito una lista di integrazioni per me rilevanti:

  • PayPal e Stripe, per vendere subscription, accesso alla membership con un unico pagamento anziché abbonamento, o semplicemente vendita di un prodotto singolo;
  • Gumroad, per la vendita di prodotti digitali come per esempio ebook;
  • Shopify, per la vendita di prodotti fisici;
  • Zapier, che consente diverse automazioni fra le app che usiamo, per esempio sincronizzando Mailchimp o altro servizio di email marketing con la gestione della membership di Ghost;
  • Ulysses e iA Writer per pubblicare da dispositivi mobili (l’admin di Ghost non supporta ufficialmente i dispositivi mobili, e così mentre con il mio iPad Pro funziona benissimo, con il mio iPhone SE 2 ci sarebbe qualcosina da sistemare)
  • Unspalsh, che consente di inserire foto (gratuite) direttamente dal sito, sia all’interno dei post che come immagine di anteprima;
  • Buffer, per la distribuzione in automatico degli articoli sui social;
  • Google Form, Typeform per la creazione di form.

Attraverso la card HTML e l’opzione di code injection Ghost consente di includere più o meno qualunque servizio, mentre per il collegamento di azioni fra servizi diversi (es: un utente si iscrive e viene aggiunto in Mailchimp per mandargli una serie di benvenuto – nota: il sistema di mailing di Ghost non ha automation, né consente di inviare una welcome email, ma solo di redirigere gli iscritti a una welcome page) bisogna ricorrere a Zapier.

Costi di gestione

Scrivere dei costi di due progetti open source potrebbe far sorridere, ma c’è più di un motivo per farlo. Partiamo dal più banale: molte delle funzioni incluse in Ghost sono fornite da plugin esterni per quanto riguarda WordPress e questi plugin non sempre sono gratuiti, o, se lo sono, sono limitati. Il costo principale per entrambi è l’hosting. WordPress.com e Ghost(Pro) offrono piani basilari e più complessi, ma per installare temi non di default o plugin/integrazioni serve un abbonamento da 33 euro per il primo e 36 dollari (circa 30 euro) per il secondo (se paghi per un anno intero i prezzi scendono).

In entrambi i casi è possibile optare per un self-hosted, con hosting gestito (da altri) oppure da se stessi. Per un hosting gestito di WordPress ci sono diversi servizi, e piani che partono da 6-10 euro, ma in genere sotto ai 15 è difficile trovare qualcosa di buono (se non in offerta per il primo acquisto). Vale grosso modo lo stesso discorso per Ghost, ma c’è una profonda differenza. Installare Ghost su un server virtuale, o anche solo su un Raspberry Pi in casa propria, richiede un numero limitato di conoscenze tecniche rispetto a quelle necessarie per gestire WordPress, per il semplice fatto che con Ghost molte funzioni, sopratutto per quanto riguarda sicurezza e velocità, sono incluse. Per certi aspetti (SEO, ottimizzazioni, integrazioni etc…) i piani base di Ghost offrono un servizio più completo rispetto ai corrispondenti di WordPress.com, che per esempio non consentono in installare Google Analytics. Wordpress.com però offre la possibilità di monetizzare tramite ads.

Un blog hostato con Digital Ocean costa 5 dollari al mese (6 con un backup settimanale) e per quanto riguarda Ghost almeno è più che fattibile per chiunque (non ho provato con WordPress, ma per avere un blog pronto da usare, quindi non parliamo più di sola installazione, ci vuole parecchio più tempo rispetto a Ghost). Alternativamente, Midnight, e Gloat offrono piani rispettivamente da 15 dollari al mese o 189 dollari anno per avere un Ghost self-hosted con hosting gestito. Digitalpress offre anche piani free (con pubblicità) e da 6 dollari al mese (senza pubblicità).

Ghost è meglio di WordPress?

Non in assoluto, ma dipende che ci devi fare. Se vuoi solo scrivere un blog (anche eventualmente multiautore), magari con dei contenuti premium dietro paywall, una newsletter a pagamento, o un corso online, Ghost è decisamente meglio perché out-of-the-box ha tutto quello che ti serve. Se pensi di sviluppare un ecommerce, vuoi essere in grado di gestire abbonamenti e vendite dal tuo sito senza ricorrere a servizi esterni, oppure vuoi vendere diversi corsi, alla WordPress resta impareggiabile per l’estensibilità che offre.