La JAMStack è un'architettura di sviluppo web popolare da alcuni anni, che consiste nel compilare un sito web dinamico sotto forma di pagine statiche, al fine di accelerarne il rendering e quindi migliorare l'esperienza utente.
Questa architettura permette in particolare di semplificare la scalabilità dei siti, poiché le pagine statiche generate possono essere ospitate da un
CDN, e quindi essere consegnate in modo scalabile e rapido in tutto il mondo. Sul piano della sicurezza, offre meno punti di ingresso agli attaccanti, e impedisce ad esempio gli attacchi DDoS. Infine, il costo dell'hosting è ridotto rispetto a un'applicazione web standard, poiché il costo dei server è sostituito dal solo costo del CDN.
JAM è l'acronimo di "JavaScript, APIs, Markup", che corrisponde alle tre componenti chiave di un sito in JAMStack: pagine HTML statiche ("Markup"), codice JavaScript per l'aspetto dinamico, e API.
Per implementare un sito in architettura JAMStack, hai generalmente bisogno di 4 ingredienti:
un
CMS headless per modificare e servire il contenuto dinamico (es. :
Contentful,
Strapi...)
un
generatore di siti statici, per generare le tue pagine dal contenuto dinamico (es. :
Gatsby,
Gridsome...)
una
pipeline che compila il tuo sito ad ogni cambiamento di contenuto o modifica di codice (es. :
Gitlab CI/CD)

Funzionamento della JAMStack
Esempio
Il blog che stai leggendo è costruito sui principi della JAMStack:
gli articoli sono redatti e ospitati su
Contentful ;
ad ogni pubblicazione o modifica di un articolo, Contentful chiama un webhook sul nostro server di sviluppo;
il nostro server compila il sito: recuperando gli articoli tramite l'API di Contentful, le pagine HTML vengono generate;
il sito è caricato su Amazon S3 e Amazon CloudFront per essere servito ai lettori.
Link utili
Se la JAMStack ti interessa e desideri approfondire la tua ricerca, ecco alcuni link che potrebbero interessarti: