Gli sviluppatori di Astro, soluzione nota per ridurre al minimo l'uso di JavaScript lato client e privilegiare l'approccio server-first, hanno rilasciato la Beta della versione 5. Un aggiornamento che porta con sé alcune novità rilevanti (tutte già stabili) come per esempio il Content Layer, le Server Island e astro:env
, una nuova modalità di gestione delle variabili di ambiente. Analizziamo tutte queste novità nel dettaglio.
Content Layer in Astro 5.0
Il Content Layer è un sistema che fornisce un'API unificata e a livello di tipi per accedere ai contenuti di un progetto Astro grazie ai loader. Tale funzionalità nasce dall'esigenza di risolvere un problema ricorrente. Infatti quando un sito web cresce, avere i contenuti in file Markdown all'interno di un repository Git può rivelarsi poco pratico.
Alimentato da loader, cioè da funzioni collegabili che recuperano e trasformano i dati da qualsiasi fonte in un formato unificato e sicuro a livello di tipi, il Content Layer permette di accedere ai dati da qualsiasi posizione. Senza vincoli legati a struttura e tipologia.
Server Island
Le Server Island sono una nuova feature di Astro 5 che permette di posticipare il rendering di contenuti dinamici fino a dopo il caricamento iniziale della pagina. Si possono così servire pagine statiche memorizzate nella cache del CDN, con contenuti personalizzati iniettati successivamente. Si avranno quindi i vantaggi di pagine statiche veloci e contenuti dinamici personalizzati.
Le Server Island si basano sull'architettura già esistente delle Island in Astro. Per definire una server Island è sufficiente utilizzare la direttiva server:defer
:
<UserButton server:defer />
Tale istruzione comunica ad Astro di saltare il rendering del componente durante la risposta iniziale e di restituirlo in un secondo momento.
astro:env
Data la difficoltà di gestire le variabili d'ambiente, Astro 5 introduce un nuovo modulo nativo che permette di tenere traccia più facilmente di quelle che sono necessarie, opzionali o rilevanti solo in certi ambiti di applicazione. Si tratta di astro:env
, una soluzione type-safe con cui definire variabili d'ambiente e accedere ad esse.
output: 'static'
Con questo aggiornamento sarà più facile realizzare siti Web con pagine statiche, memorizzate in cache e dinamiche. Questo grazie al modulo di default output: 'static'
. Esso permetterà di restituire le rotte individualmente a runtime semplicemente aggiungendo un adapter. Senza la necessità di alcuna configurazione.