L'uso di sistemi di gestione dei contenuti "headless" che forniscono dati via API, abbinati a tecnologie static site generation come Next.js o Gatsby, per creare siti web veloci, sicuri e scalabili.
Con l’avanzamento delle tecnologie, gli standard si elevano inevitabilmente per venire incontro ad aspettative sempre maggiori da parte di utenti ma anche degli sviluppatori.
Per questi ultimi, infatti, lo sviluppo in headless CMS è un vero e proprio game changer, per benefici tra i quali maggiore flessibilità e libertà creativa, ma facciamo un passo indietro per capire cos’è un CMS headless e quali sono le differenze con sistemi tradizionali.
Un CMS (Content Management System) headless è un sistema di gestione dove i contenuti vengono visualizzati, gestiti e immagazzinati in modo indipendente da come verranno poi visualizzati.
In un CMS tradizionale, c’è un collegamento diretto tra il backend (il “corpo”) che gestisce i contenuti e li invia al frontend (la “testa”), che si occuperà di mostrarli.
Dall’altra parte, i CMS headless mancano di questo link (da qui, “senza testa”) e il backend mette a disposizione i contenuti in modo “non elaborato”. Questo si traduce in totale flessibilità da parte del frontend che acquisisce dati, contenuti e funzionalità tramite le API e può renderizzarli con completa libertà.
CMS open-source basato su Git, la sua particolarità? É una SPA scritta in React, scaricabile attraverso il gestore di pacchetti NPM. Particolarmente adatto per essere integrato con generatori di siti statici, può essere utilizzato con la sua piattaforma nativa di hosting Netlify.
Le caratteristiche principali, oltre a quelle già citate, vedono:
CMS Headless e JAMstack: la chiave per un sito ultraveloce
La JAMstack (Javascript, API, Markup) è un’architettura di sviluppo web atta a enfatizzare la pre-renderizzazione dei siti web e la loro distribuzione tramite CDN attraverso i metodi più efficienti: Javascript per la dinamicità, API per le funzionalità server-side e markup statico per la strutturazione dei contenuti.
In quest’ottica, gli headless CMS si inseriscono perfettamente in questo sistema, come “motore” delle API, fornendo i contenuti che le applicazioni costruite in JAMstack consumano, secondo il principio del decoupling.
Nell’implementazione dell’architettura JAMStack, i generatori di siti statici (SSG) sono strumenti essenziali per raggiungere gli obiettivi richiesti quando si lavora con queste tecnologie.
Utilizzati dagli albori di Internet, vennero sostituiti da altri strumenti quali i CMS monolitici il cui approccio era più semplice per sviluppatori meno tecnici e interfacce utente meno intuitive, limitandone la complessità.
Inoltre, era richiesta una personalizzazione dei contenuti che solo il rendering dinamico poteva offrire, a discapito di tempi di caricamento più lunghi e carichi elevati di traffico.
Questi e ad altri motivi hanno spinto i developers a migliorare gli SSG in modo tale che potessero raggiungere le capacità per generare pagine e pagine in men che non si dica.
Con l’aumento della consapevolezza riguardo l’importanza delle performance, della scalabilità e della sicurezza dei siti web, sono nati SSG di ogni genere che possono coprire la maggioranza dei linguaggi di programmazione, usare diversi linguaggi di templating e convenzioni, e funzionare in ogni ambiente di sviluppo.
“..É progettato per fornire un'esperienza di visualizzazione ottimale agli utenti finali del sito web e un'esperienza di scrittura ideale per gli autori del sito”. Hugo è tra i più popolari SSG open-source, è scritto in Go, e ottimizzato per essere veloce, facile nell’uso e nella configurazione. "
layouts/
└── partials/
├── average.html
├── breadcrumbs.html
└──footer.html
{{ partial "breadcrumbs.html" }}
layouts/ *Contiene i layout e i file di base per le pagine. └── default/ * Creazione dei template da applicare alle pagine. ├── home * Pagina di apertura. ├── baseofhtml * Template comune a tutte le pagine. ├── blog * Template applicabile solamente ai blog. ├── default * Template per pagine di layout default. ├── 404 * Template per la pagina 404. └── redirect * Template per il redirect delle pagine.
In un file di Markdown, il metodo per specificare il layout è il seguente:
---
layout: default
title: Titolo della pagina
description: Descrizione della pagina ---
Questa pagina otterrà solamente il layout default; in aggiunta, è possibile inserire eventuali metadata come titolo, autore, categorie ecc..
Al momento della compilazione del sito, Hugo prende i contenuti scritti in Markdown e li trasforma automaticamente in HTML, integrandoli nei template di pagina.
In conclusione, l'evoluzione verso l'uso di CMS headless e l'adozione dell'architettura JAMstack, nonostante le sfide, come la complessità e la necessità di adattamento per i team meno tecnici, ha diversi vantaggi.
Infatti, non solo risponde alle esigenze di performance, sicurezza e scalabilità dei siti moderni, ma offre anche una flessibilità senza precedenti sia per gli sviluppatori che per i creatori di contenuti.
Man mano che queste tecnologie continuano a evolversi, possiamo aspettarci ulteriori miglioramenti e innovazioni che renderanno lo sviluppo web ancora più potente, accessibile e performante.