Qual è il concetto dietro JAMstack?
Le risposte di Tim e Chris portano un sacco di risposte + valore al tavolo, quindi +1 qui.
Per me, sembra ancora che il concetto di JAMstack sia stato meglio cristallizzato nella presentazione di Matt Biilmann "The New Front-End Stack" SmashingConf.
Si tratta di 40 minuti, ma lui ti porta letteralmente attraverso un corso intensivo sia storico che tecnico, con supporto visivo/esempi. Questo ha praticamente innescato un momento "Va bene, ho capito" per me.
Per capire meglio il concetto, penso che valga anche la pena contrastare i due diversi flussi di lavoro coinvolti (progetti dinamici CMS o LAMP-driven vs. JAMstack):
Flusso di lavoro tradizionale
→ Costruzione e hosting sono accoppiati.
→ Un utente richiede una pagina. Il file viene elaborato e servito a seguito di una (lunga) serie di interazioni tra database, codice backend, server, browser e strati di caching.
→ Gli aggiornamenti del core vengono inviati ai server di produzione, spesso tramite FTP. Il database deve essere mantenuto o aggiornato.
→ Gli aggiornamenti del contenuto sono spinti attraverso CMS tradizionali, come WordPress o Drupal.
JAMstack workflow
→ Costruzione e hosting sono disaccoppiati.
→ Un utente richiede una pagina. Il file è già compilato e viene direttamente servito al browser da un CDN.
→ Gli aggiornamenti del core vengono spinti attraverso Git; il sito viene interamente ricostruito attraverso strumenti di costruzione moderni come i generatori di siti statici.
→ Gli aggiornamenti del contenuto vengono spinti attraverso Git o un sito statico CMS.
Questo è in realtà un estratto da un post che io e il nostro team abbiamo pubblicato. Dopo aver visto come il passaggio agli stack lato client ha influenzato positivamente il nostro prodotto e gli sviluppatori intorno a noi, ci siamo anche interessati a ciò che questa nuova suite di strumenti significava per i clienti reali. Così abbiamo messo insieme una grande guida per capire e discutere il JAMstack con i clienti. È proprio qui, se può essere d'aiuto a qualcuno. :)