Per creare un sito statico, gli svi­lup­pa­to­ri e le svi­lup­pa­tri­ci si rivolgono sempre più spesso a Jamstack con ge­ne­ra­to­ri di siti web statici che sem­pli­fi­ca­no no­te­vol­men­te il processo di pro­gram­ma­zio­ne e per­met­to­no di rendere le pagine di­spo­ni­bi­li ra­pi­da­men­te. Tutte le funzioni dinamiche sono affidate a un’ar­chi­tet­tu­ra di­stri­bui­ta. L’uso di Ja­va­Script lato client, che comunica con le API dei mi­cro­ser­vi­zi, fornisce la dinamica ne­ces­sa­ria.

Crea il tuo sito web
Scopri le nuovi funzioni IA di MyWebsite
  • Editor facile e intuitivo con supporto IA
  • Immagini e testi d'effetto in pochi secondi
  • Dominio, indirizzo e-mail e cer­ti­fi­ca­to SSL inclusi

Cos’è un ge­ne­ra­to­re di siti statici (SSG)?

I ge­ne­ra­to­ri di siti statici sono strutture di codice pronte all’uso sulla base delle quali si possono creare siti web statici. A dif­fe­ren­za dei sistemi di gestione dei contenuti che re­cu­pe­ra­no i contenuti dai database, i ge­ne­ra­to­ri di siti statici creano i file HTML di una pagina uti­liz­zan­do uno script a partire da file di input me­mo­riz­za­ti in un file system. Questo processo avviene già durante la creazione, quindi mentre le modifiche vengono apportate al codice e al contenuto, e non quando l’utente accede alla pagina dal browser.

N.B.

Lo script di un ge­ne­ra­to­re di siti statici per con­ver­ti­re i file di input in file di output può essere scritto in un’ampia varietà di linguaggi. Ja­va­Script è uti­liz­za­to in questo caso sempre più, spe­cial­men­te insieme al già men­zio­na­to Jamstack. Tuttavia, altre al­ter­na­ti­ve come PHP, Python, Ruby o Go sono ugual­men­te diffuse.

Come fun­zio­na­no i ge­ne­ra­to­ri dei siti web statici?

L’in­stal­la­zio­ne e il fun­zio­na­men­to di un ge­ne­ra­to­re di siti statici avvengono tramite riga di comando. Il contenuto effettivo del sito web è scritto in linguaggi di markup come markdown. I documenti markdown possono essere fa­cil­men­te adattati nello strumento del browser del sistema di controllo delle versioni GitHub. In al­ter­na­ti­va, è possibile usare qualsiasi editor di testo o un editor markdown. Uti­liz­zan­do i metadati all’inizio dei file (spesso indicati in gergo come “front matter”), il ge­ne­ra­to­re assicura che il sito web venga vi­sua­liz­za­to nel browser.

Immagine: Generatore di siti statici: schema del funzionamento
Ge­ne­ra­to­re di siti statici: schema del fun­zio­na­men­to.

Quali sono i vantaggi di un sito web statico?

In certi casi, ad esempio sui blog o i siti aziendali, l’at­ten­zio­ne si concentra sulla mera tra­smis­sio­ne di in­for­ma­zio­ni. I sistemi di gestione dei contenuti e gli editor per la creazione di siti possono anche essere uti­liz­za­ti per tali progetti, ma i ge­ne­ra­to­ri di siti statici hanno vantaggi decisivi rispetto alle soluzioni classiche:

  • Velocità: i progetti creati con un ge­ne­ra­to­re di siti web statici sono ca­rat­te­riz­za­ti da un’ec­cel­len­te velocità lato utente, rilevante anche da una pro­spet­ti­va SEO. Questo perché l’ela­bo­ra­zio­ne dei file avviene già al momento dello sviluppo o della creazione delle pagine e non solo quando viene ri­chia­ma­ta la pagina (parola chiave: in­ter­ro­ga­zio­ne del database).
  • Controllo di versione per il contenuto: mentre il contenuto dei progetti web dinamici è me­mo­riz­za­to se­pa­ra­ta­men­te dal codice base nei database, quello di un sito web statico è ti­pi­ca­men­te formato da semplici file di testo. Strut­tu­ral­men­te, gli elementi del contenuto non dif­fe­ri­sco­no quindi dagli altri com­po­nen­ti del codice base, motivo per cui la gestione delle versioni può essere impostata fa­cil­men­te. Per esempio, non solo la struttura del codice di un blog può essere gestita in una directory GitHub, ma anche i singoli post del blog.
  • Sicurezza: un altro vantaggio dei siti web creati uti­liz­zan­do ge­ne­ra­to­ri di siti web statici è che sono meno soggetti ad attacchi hacker, a dif­fe­ren­za, per esempio, dei sistemi di gestione dei contenuti come WordPress, che già portano con sé il rischio di vul­ne­ra­bi­li­tà e devono essere re­go­lar­men­te ag­gior­na­ti. Il po­ten­zia­le di rischio completo si limita però all’accesso in­di­vi­dua­le del client quando la pagina viene ri­chia­ma­ta. Poiché di solito vengono con­se­gna­te per lo più pagine HTML strut­tu­ra­te, la pro­ba­bi­li­tà di un accesso in­de­si­de­ra­to si riduce al minimo.
  • Semplice ma­nu­ten­zio­ne del server: come un pacchetto software, anche un ge­ne­ra­to­re di siti statici ha di­pen­den­ze che devono essere sod­di­sfat­te. Il numero di com­po­nen­ti richiesti è re­la­ti­va­men­te basso, ma questi sono comunque rilevanti solo durante il processo di sviluppo. Mentre altre soluzioni ri­chie­do­no i più diversi moduli, database, librerie, framework e pacchetti anche per il fun­zio­na­men­to dal vivo e quindi gli ag­gior­na­men­ti regolari sono all’ordine del giorno, le pagine statiche generate sono solo legate a un server web fun­zio­nan­te al momento della pub­bli­ca­zio­ne.
Consiglio

Con Deploy Now di IONOS, puoi ospitare ge­ne­ra­to­ri di siti statici come Astro, Hugo o Jekyll senza problemi da GitHub su un’in­fra­strut­tu­ra geo­ri­don­dan­te e protetta da DDoS. Quando apporti modifiche al tuo progetto, Deploy Now avvia au­to­ma­ti­ca­men­te in back­ground un ag­gior­na­men­to dei contenuti statici sul tuo spazio web. La piat­ta­for­ma supporta anche la fornitura au­to­ma­ti­ca di SSL e l’uso di ambienti di staging.

Qual è la dif­fe­ren­za tra un ge­ne­ra­to­re di siti statici e un classico CMS?

I sistemi di gestione dei contenuti hanno ri­vo­lu­zio­na­to il modo di costruire i siti web. Le molte ope­ra­zio­ni manuali richieste per la pro­gram­ma­zio­ne di siti web statici classici ap­par­ten­go­no ormai al passato grazie ai pratici sistemi odierni. L’in­no­va­zio­ne decisiva e il cam­bia­men­to rispetto al vecchio approccio: la me­mo­riz­za­zio­ne dei contenuti nei database e la pos­si­bi­li­tà correlata di compilare e pre­sen­ta­re le pagine in modo adeguato solo quando gli utenti le ri­chie­do­no.

I ge­ne­ra­to­ri di siti statici colmano il divario tra il classico sito web statico e i progetti CMS. Come nell’approccio classico di pro­gram­ma­zio­ne, le pagine e i loro contenuti sono già generati prima che gli utenti vi accedano. Come i sistemi di gestione dei contenuti, i ge­ne­ra­to­ri di siti statici, d’altra parte, per­met­to­no agli svi­lup­pa­to­ri e alle svi­lup­pa­tri­ci di uti­liz­za­re modelli e generare pagine au­to­ma­ti­ca­men­te.

N.B.

Il sistema di gestione dei contenuti e il ge­ne­ra­to­re di siti statici possono anche com­ple­tar­si a vicenda, come accade con­cre­ta­men­te quando si combina un CMS headless a un ge­ne­ra­to­re, usando quest’ultimo come forza motrice per collegare codice e contenuto.

La dif­fe­ren­za decisiva tra il ge­ne­ra­to­re di siti statici e il CMS risiede nel momento in cui le pagine web vengono create: nel caso del primo durante il processo di sviluppo, nel caso del secondo al momento dell’accesso da parte dell’utente. Inoltre, con il ge­ne­ra­to­re non c’è di­pen­den­za dai database o da qualsiasi altra fonte di dati esterna e nessuna ela­bo­ra­zio­ne di dati lato server quando si accede al sito web. Na­tu­ral­men­te, è anche possibile integrare fonti di dati esterne con un’API.

Perché usare un ge­ne­ra­to­re di siti statici?

Può valere la pena di usare i ge­ne­ra­to­ri di siti statici per costruire il proprio progetto web per molte ragioni. Pro­ba­bil­men­te il motivo più decisivo è il vantaggio che i siti web creati offrono in termini di pre­sta­zio­ni. Infatti, gli ec­cel­len­ti tempi di ca­ri­ca­men­to che risultano dal contenuto pronto hanno un effetto positivo sull’espe­rien­za utente. Poiché tutti i file del sito web sono me­mo­riz­za­ti cen­tral­men­te in un unico posto, i progetti basati su un ge­ne­ra­to­re di siti statici offrono anche la massima fles­si­bi­li­tà e di­spo­ni­bi­li­tà. Inoltre, l’impegno am­mi­ni­stra­ti­vo è minimo.

Tuttavia, se è ne­ces­sa­rio che

  • i contenuti siano rivisti re­go­lar­men­te,
  • debbano essere aggiunte delle fun­zio­na­li­tà suc­ces­si­va­men­te,
  • vengano elaborati gli input degli utenti o
  • vengano fatte modifiche visive in qualsiasi momento e con poco know-how,

è pre­fe­ri­bi­le optare per soluzioni come editor per la creazione di siti e sistemi di gestione dei contenuti.

Sito web con dominio
Crea il tuo sito web per­so­na­liz­za­to

MyWebsite Now Starter è lo strumento pensato per i prin­ci­pian­ti che vogliono creare un sito web in modo intuitivo. Include dominio e indirizzo e-mail.

I punti deboli dei ge­ne­ra­to­ri di siti statici

Mentre i già citati vantaggi dei siti statici, come l’ec­cel­len­te velocità di consegna o la sicurezza elevata, non possono essere liquidati a priori, ci sono ragioni decisive per cui un ge­ne­ra­to­re di questo tipo non è adatto a progetti più grandi. Lavorare con un ge­ne­ra­to­re, per esempio, non solo richiede una vasta co­no­scen­za di linguaggi di markup come markdown, HTML e simili, ma manca anche di numerosi au­to­ma­ti­smi che sono una cosa ovvia nei sistemi di gestione dei contenuti e negli editor per la creazione di siti. Inoltre, si possono iden­ti­fi­ca­re i seguenti punti deboli quando si usano ge­ne­ra­to­ri di siti web statici:

  • Contenuti non in tempo reale: un ge­ne­ra­to­re di siti statici non offre alcuna pos­si­bi­li­tà di creare contenuti dinamici (rac­co­man­da­zio­ni, ag­gior­na­men­to dei prezzi, ricerca full text, ecc.). Gli elementi che si adattano au­to­ma­ti­ca­men­te al ri­spet­ti­vo utente valutando i dati in tempo reale si possono rea­liz­za­re solo con l’aiuto di script lato client (spe­cial­men­te Ja­va­Script).
  • Utilizzo laborioso degli input dell’utente: un altro problema degli script del server e dei database mancanti diventa evidente se il progetto web deve anche per­met­te­re input da parte dell’utente in certe si­tua­zio­ni (per esempio, in un modulo di contatto). Anche qui, è richiesto Ja­va­Script o è ne­ces­sa­rio il supporto di servizi terzi. La piat­ta­for­ma DISQUS può essere usata, per esempio, per ag­giun­ge­re una funzione di commento (compresa la mo­de­ra­zio­ne e la gestione dello spam) a progetti di ge­ne­ra­to­ri di siti web statici.
  • Nessuna in­ter­fac­cia utente standard: molti ge­ne­ra­to­ri di siti statici, come i CMS headless, non hanno un’in­ter­fac­cia standard per inserire nuovi contenuti o ag­gior­na­re o can­cel­la­re quelli esistenti, ma sono gestiti nel terminale. Gli editor WYSIWYG aiutano a scrivere il codice markdown richiesto e a con­trol­la­re il risultato in anticipo usando la funzione di anteprima, ma non rendono superfluo caricare ma­nual­men­te i file sul server.

In sintesi, si può dire che i progetti basati su pagine statiche hanno le loro debolezze so­prat­tut­to per quanto riguarda aspetti quali l’attualità, la modifica e l’in­te­ra­zio­ne dell’utente.

Quali sono i ge­ne­ra­to­ri di siti statici co­no­sciu­ti?

Il numero di ge­ne­ra­to­ri di siti statici è cresciuto no­te­vol­men­te negli ultimi anni. Su GitHub si trovano le directory dei progetti di numerose soluzioni open source che possono essere uti­liz­za­te gra­tui­ta­men­te per creare il proprio sito web e adattate secondo le esigenze.

Un riepilogo dei rap­pre­sen­tan­ti più popolari è fornito da jamstack.org: il sito elenca le varie opzioni in ordine al­fa­be­ti­co o ordinate per stelle, fork o problemi di GitHub (sug­ge­ri­men­ti di ot­ti­miz­za­zio­ne o incarichi). Inoltre, le strutture dei siti web possono anche essere filtrate in base al lin­guag­gio di pro­gram­ma­zio­ne usato (tra cui Ruby, Ja­va­Script, Go, ecc.).

La seguente tabella elenca alcuni dei ge­ne­ra­to­ri più im­por­tan­ti in base alle in­for­ma­zio­ni di StaticGen:

Licenza Lin­guag­gio Engine del template Sito/Pagina del progetto
Next.js MIT Ja­va­Script React nextjs.org
Hugo APL 2.0 Go Go gohugo.io
Do­cu­sau­rus MIT Ja­va­Script React, Markdown do­cu­sau­rus.io
Nuxt MIT Ja­va­Script Vue nuxtjs.org
Gatsby MIT Ja­va­Script React gatsbyjs.com
Astro MIT Ja­va­Script, True­Script Diversi astro.build
Jekyll MIT Ruby Liquid jekyllrb.com
Hexo MIT Ja­va­Script EJS, Pug, tra gli altri hexo.io
Vuepress MIT Ja­va­Script Vue vuepress.vuejs.org
Eleventy MIT Ja­va­Script Liquid, Nunjucks, tra gli altri 11ty.dev

Creare siti web per clienti con Jamstack: veloce, ef­fi­cien­te e sicuro

In questo whi­te­pa­per scoprirai, tra l’altro, quali problemi com­por­ta­no i CMS con­ven­zio­na­li, perché le pagine statiche con l’ausilio di Jamstack diventano una vera al­ter­na­ti­va e come puoi garantire flussi di lavoro più snelli e migliori risultati per i clienti.

Deploy Now
Jamstack per un web de­ve­lo­p­ment al­l'a­van­guar­dia

Co­strui­sci siti web più veloci grazie al pre­ren­de­ring e ad un hosting più rapido.

Di­stri­bui­re un ge­ne­ra­to­re di siti statici uti­liz­zan­do GitHub: come funziona

È possibile me­mo­riz­za­re e ag­gior­na­re fa­cil­men­te il codice dei ge­ne­ra­to­ri di siti statici, compresi i contenuti, le risorse e gli script re­spon­sa­bi­li della ge­ne­ra­zio­ne dell’output, in un re­po­si­to­ry GitHub. In questo modo, colleghi il tuo progetto al controllo di versione e sem­pli­fi­chi la col­la­bo­ra­zio­ne sul codice.

Infine, tutto ciò che rimane è di­stri­bui­re i file su un server web, ripetendo il processo di co­stru­zio­ne dei file HTML e CSS ogni volta che il re­po­si­to­ry viene ag­gior­na­to. Questo compito può anche essere no­te­vol­men­te sem­pli­fi­ca­to con servizi di hosting per ge­ne­ra­to­ri di siti statici come Deploy Now. La soluzione IONOS attiva au­to­ma­ti­ca­men­te un ag­gior­na­men­to in back­ground del contenuto statico dello spazio web quando apporti modifiche alla directory del tuo ge­ne­ra­to­re di siti statici. Per questo processo, Deploy Now usa un workflow di GitHub Actions che ti permette di osservare i log di build di­ret­ta­men­te nell’in­ter­fac­cia utente di GitHub.

Deploy Now: il nuovo modo di creare siti web statici

Deploy Now è un servizio di hosting con­ve­nien­te e offre supporto per tutti i più popolari ge­ne­ra­to­ri di siti statici ed è anche l’ideale per Jamstack. Inoltre, questo servizio si con­trad­di­stin­gue con uno staging semplice e ti offre un cer­ti­fi­ca­to SSL/TLS gratuito, oltre a una pro­te­zio­ne DDoS per il tuo progetto.

Sta a te decidere se portare e collegare il tuo dominio o re­gi­stra­re un nuovo dominio su IONOS. Per maggiori in­for­ma­zio­ni sulle con­fi­gu­ra­zio­ni tecniche, i tutorial e i progetti iniziali, consulta la do­cu­men­ta­zio­ne ufficiale di Deploy Now.

Vai al menu prin­ci­pa­le