{"id":74042,"date":"2023-10-20T08:31:52","date_gmt":"2023-10-20T07:31:52","guid":{"rendered":"https:\/\/kinsta.com\/it\/?p=74042&#038;preview=true&#038;preview_id=74042"},"modified":"2023-10-24T07:09:55","modified_gmt":"2023-10-24T06:09:55","slug":"hugo-stsh-con-circleci","status":"publish","type":"post","link":"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/","title":{"rendered":"Come distribuire gratuitamente un sito Hugo su Kinsta con l&#8217;Hosting di Siti Statici"},"content":{"rendered":"<p>Hugo \u00e8 un popolare generatore di siti statici (SSG) open-source progettato per aiutare gli sviluppatori a costruire e gestire siti web in modo rapido ed efficiente. Pu\u00f2 essere utilizzato per creare blog, portfolio e tutte le forme di siti personali che non richiedono dati dinamici.<\/p>\n<p>Una volta creati i vostri siti con Hugo, vorrete sicuramente ospitarli online per poterli condividere con tutti coloro che devono accedervi. \u00c8 qui che entra in gioco l&#8217;Hosting di Siti Statici di Kinsta!<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Come funziona l&#8217;Hosting di Siti Statici di Kinsta<\/h2>\n<p>L&#8217;Hosting di Siti Statici di Kinsta \u00e8 un servizio gratuito dedicato all&#8217;hosting di <a href=\"https:\/\/kinsta.com\/it\/blog\/sito-web-statico\/\">siti statici<\/a>. Lo fa servendo file <a href=\"https:\/\/kinsta.com\/it\/blog\/html\/\">HTML<\/a>, <a href=\"https:\/\/kinsta.com\/it\/blog\/best-practice-css\/\">CSS<\/a> e <a href=\"https:\/\/kinsta.com\/javascript\/\">JavaScript<\/a> precostituiti che non cambiano dinamicamente. Funziona collegando un repository ospitato su un provider Git (<a href=\"https:\/\/docs.sevalla.com\/applications\/git\/bitbucket#grant-access-to-the-kinsta-bitbucket-application\">BitBucket<\/a>, <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/github#authenticate-and-authorize\">GitHub<\/a> o <a href=\"https:\/\/docs.sevalla.com\/applications\/git\/gitlab#authorize-the-kinsta-gitlab-application\">GitLab<\/a>) al vostro account Kinsta e distribuendo i file del vostro sito statico su internet.<\/p>\n<p>L&#8217;Hosting di Siti Statici di Kinsta \u00e8 in grado di creare automaticamente siti a partire da SSG costruiti su Node.js, mentre per altri come Hugo, scritto in linguaggio di programmazione Go (Golang), \u00e8 necessario adottare un altro approccio.<\/p>\n<p>Questo articolo spiega come ospitare gratuitamente il vostro sito Hugo su Kinsta con l&#8217;<a href=\"https:\/\/sevalla.com\/static-site-hosting\/\">Hosting di Siti Statici<\/a> di Kinsta!<\/p>\n<h2>Distribuire un sito Hugo sull&#8217;Hosting di Siti Statici di Kinsta<\/h2>\n<p>Ci sono tre modi per distribuire un sito Hugo sull&#8217;Hosting di Siti Statici di Kinsta:<\/p>\n<ol start=\"1\">\n<li>Costruendo il sito web utilizzando il metodo Continuous Integration\/Continuous Deployment (CI\/CD) e poi distribuirlo.<\/li>\n<li>Utilizzando la developer dependency <a href=\"https:\/\/www.npmjs.com\/package\/hugo-bin\" target=\"_blank\" rel=\"noopener noreferrer\">hugo-bin<\/a>.<\/li>\n<li>Servendo file statici costruiti localmente.<\/li>\n<\/ol>\n<p>In questo articolo li analizzeremo tutti e tre.<\/p>\n<h3>Prerequisiti<\/h3>\n<p>Per seguire questo tutorial, \u00e8 necessario avere:<\/p>\n<ul>\n<li>Esperienza con Hugo e Git.<\/li>\n<li>Un sito Hugo in esecuzione in locale.<\/li>\n<\/ul>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Per saperne di pi\u00f9 su Hugo, vi consigliamo di leggere l&#8217;articolo &#8220;<a href=\"https:\/\/kinsta.com\/it\/blog\/sito-statico-hugo\/\">Come costruire un sito statico velocissimo con Hugo<\/a>&#8220;.<\/p>\n<\/aside>\n\n<h2>Creare il sito con CircleCI e distribuirlo su Kinsta<\/h2>\n<p>Per il primo metodo, utilizziamo <a href=\"https:\/\/circleci.com\/\" target=\"_blank\" rel=\"noopener noreferrer\">CircleCI<\/a> come strumento CI\/CD. Questo metodo prevede la creazione di un workflow CircleCI che esegue la build del sito Hugo in un nuovo branch chiamato <code>deploy<\/code> e poi configura Kinsta per distribuire i file statici da questo branch.<\/p>\n<h3>Vantaggi dell&#8217;uso di CI\/CD<\/h3>\n<p>Con questo metodo potrete evitare di costruire localmente il sito prima di inviarlo al repository Git. Normalmente, Kinsta gestisce il processo di creazione del sito per gli SSG basati su Node.js, ma per altri SSG come Hugo, l&#8217;utilizzo di un workflow pu\u00f2 aiutare a gestire automaticamente il processo di creazione del sito.<\/p>\n<p>Inoltre, potete aggiungere altri job al vostro file di configurazione CI\/CD, ad esempio per eseguire il linting e per testare il codice. In questo modo garantirete anche che il deployment venga aggiornato solo se la pipeline CI\/CD viene completata con successo.<\/p>\n<h3>Passaggio 1: Creare il file di configurazione<\/h3>\n<p>Iniziamo creando una cartella <strong>.circleci<\/strong> nella directory principale del progetto Hugo. All&#8217;interno di questa cartella, creiamo un file <strong>config.yml<\/strong> per definire la configurazione del workflow.<\/p>\n<h3>Passaggio 2: Inserire il codice in un repository Git<\/h3>\n<p>Creiamo un repository Git utilizzando il nostro provider Git preferito e inviamo il codice al repository.<\/p>\n<h3>Passaggio 3: Creare un orphan branch<\/h3>\n<p>Successivamente, creiamo un <a href=\"https:\/\/git-scm.com\/docs\/git-checkout#Documentation\/git-checkout.txt---orphanltnew-branchgt\" target=\"_blank\" rel=\"noopener noreferrer\">orphan branch<\/a> vuoto chiamato <code>deploy<\/code>, dove verranno inseriti i file statici per il deployment. Eseguiamo i seguenti comandi nel terminale del progetto:<\/p>\n<pre><code class=\"language-bash\">git switch --orphan deploy\ngit commit --allow-empty -m \"Initial commit on deploy branch\"\ngit push -u origin deploy<\/code><\/pre>\n<p>Non aggiungete alcun file a questo branch; verr\u00e0 popolato automaticamente dal workflow CircleCI con il contenuto della cartella <strong>public<\/strong> generata da Hugo.<\/p>\n<h3>Passaggio 4: Creare un account CircleCI<\/h3>\n<p>Visitate il sito web di CircleCI e create un account se non ne avete gi\u00e0 uno. Potete registrarvi utilizzando il vostro provider Git preferito, il che render\u00e0 pi\u00f9 facile l&#8217;accesso ai repository senza ulteriori configurazioni.<br \/>\n<aside data-eRp.J=\"QVIwdnhlMm9YT0x5TWJwag==\" data-Gnxte=\"WUxKQks1V2IwNmhWM0FmZWp1MTRUSA==\" class=\"WzI2MTc5LDI2MjM4XQ==\" data-y=\"TVo4MC5BQzNUU1g=\" data-r3koi=\"Im1pZGRsZSI=|Iml0X0lUIg==\" data-g-FpL_=\"VDlXczZKYWRiWDhOLW5HbTA3Y0hDZw==\" data-qHYyj=\"REZKOTg1WGtlbVMwcFl5NkVMVE94dw==\" data-6wT=\"Qm93azhxTDNEX0ouTkc=\" id=\"NzQwNDI=\" data-lxE.6Sk=\"Y3FnUjkwTUUxdlBYMlpILkpUaA==\" data-Je-=\"YWVoMDJYMTRLZ1J3T0NCb0h4cA==\"><\/aside><\/p>\n<h3>Passaggio 5: Configurare il repository<\/h3>\n<p>Dopo aver effettuato il login, accediamo alla <a href=\"https:\/\/app.circleci.com\/dashboard\" target=\"_blank\" rel=\"noopener noreferrer\">dashboard CircleCI<\/a>, clicchiamo su <strong>Project<\/strong> nella barra laterale di sinistra e selezioniamo il repository che vogliamo configurare. CircleCI rilever\u00e0 automaticamente il file di configurazione.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/10\/configure-repo-circleci.jpg\" alt=\"Configurare un repository con CircleCI\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Configurare un repository con CircleCI.<\/figcaption><\/figure>\n<p>Clicchiamo sul pulsante <strong>Set Up Project<\/strong> per concedere a CircleCI l&#8217;accesso alla nostra base di codice ed eseguire i workflow in caso di modifiche al codice.<\/p>\n<h3>Passaggio 6: Definire la configurazione di CircleCI<\/h3>\n<p>Ora che abbiamo creato un file di configurazione di CircleCI, costruiamone il contenuto. Assicuriamoci di essere nel nostro branch predefinito (non nel branch <code>deploy<\/code> ) e iniziamo a definire la versione di CircleCI, che al momento \u00e8 la 2.1:<\/p>\n<pre><code class=\"language-yaml\">version: 2.1<\/code><\/pre>\n<h3>Passaggio 7: Definire gli executor<\/h3>\n<p>Poich\u00e9 si tratta di un progetto Hugo, dovremo definire un executor per eseguire i job. Definiamo l&#8217;<code>hugo-executor<\/code> qui, in modo da non doverlo definire per ogni job. Questo executor utilizza un&#8217;immagine Docker (<code>cibuilds\/hugo:latest<\/code>) per creare un ambiente coerente per la build del sito Hugo:<\/p>\n<pre><code class=\"language-yaml\">executors:\n  hugo-executor:\n    docker:\n      - image: cibuilds\/hugo:latest<\/code><\/pre>\n<h3>Passaggio 8: Definire i job<\/h3>\n<p>Definiamo quindi due job: <code>build<\/code> e <code>push build<\/code>. Questi job specificano i passaggi da eseguire in ciascuno di essi:<\/p>\n<pre><code class=\"language-yaml\">jobs:\n  build:\n    executor: hugo-executor\n\n  push build:\n    executor: hugo-executor<\/code><\/pre>\n<h4>Build Job:<\/h4>\n<p>Questo job \u00e8 responsabile della build del sito Hugo e della memorizzazione temporanea dei file statici generati nell&#8217;area di lavoro, in modo che possano essere accessibili per un successivo utilizzo nel job <code>push build<\/code>.<\/p>\n<pre><code class=\"language-yaml\">build:\n  executor: hugo-executor\n  steps:\n    - checkout\n\n    - run:\n        name: Update theme\n        command: git submodule update --init --recursive\n\n    - run:\n        name: Build Hugo site\n        command: hugo --destination=workspace\/public\n\n    # Persist the 'build' directory to the workspace\n    - persist_to_workspace:\n        root: workspace\n        paths:\n          - public<\/code><\/pre>\n<p>Il job di cui sopra specifica che utilizza l&#8217;executor <code>hugo-executor<\/code> definito in precedenza. Quindi esegue quattro passaggi principali:<\/p>\n<ul>\n<li><code>checkout<\/code>: questo passaggio controlla il codice sorgente del progetto dal repository GitHub.<\/li>\n<li><code>Update theme<\/code>: questo passaggio inizializza e aggiorna i sottomoduli Git (se presenti) per garantire che il tema Hugo sia aggiornato. Questo \u00e8 utile se il sito Hugo utilizza i Gitmodules per fare riferimento al tema utilizzato invece di eseguire il push di grandi file di temi gi\u00e0 disponibili su GitHub.<\/li>\n<li><code>Build Hugo site<\/code>: questo passaggio crea il sito Hugo e specifica la cartella di destinazione come <strong>workspace\/public<\/strong>.<\/li>\n<li><code>persist_to_workspace<\/code>: questo passaggio consente di persistere la cartella <strong>public<\/strong> (output della build di Hugo) nell&#8217;area di lavoro per utilizzarla successivamente in <code>push build<\/code>.<\/li>\n<\/ul>\n<h4>Push Build Job:<\/h4>\n<p>Il job <code>push build<\/code> \u00e8 responsabile del push del sito costruito in un orphan branch (<code>deploy<\/code>) nel repository GitHub. In questo modo, il codice rimane sul branch predefinito e il branch <code>deploy<\/code> ospita solo i file statici del sito.<\/p>\n<pre><code class=\"language-yaml\">push build:\n  executor: hugo-executor\n  steps:\n    - attach_workspace:\n        at: workspace\n\n    - run:\n        name: Push build folder to GitHub\n        command: |\n          # Configure Git identity (replace &lt;GitHubUsername&gt; with your actual username)\n          git config --global user.name \"&lt;GitHubUsername&gt;\"\n          git config --global user.email \"&lt;GitHubUsername&gt;@users.noreply.github.com\"\n\n          # Clone the repository (replace &lt;your-repo-name&gt; with your actual repository URL)\n          git clone --branch deploy --depth 1 https:\/\/&lt;GitHubUsername&gt;:${GITHUB_TOKEN}@github.com\/&lt;GitHubUsername&gt;\/&lt;your-repo-name&gt;.git deployment\n\n          # Copy the 'public' directory to the deployment folder\n          cp -R workspace\/public deployment\n\n          # Navigate to the deployment folder\n          cd deployment\n\n          # Commit and push changes\n          git add .\n          git commit -m \"Auto generated from ${CIRCLE_SHA1}\"\n          git push<\/code><\/pre>\n<p>Il job di cui sopra esegue le seguenti operazioni:<\/p>\n<ul>\n<li><code>attach_workspace<\/code>: questo passaggio collega lo spazio di lavoro in cui il job <code>build<\/code> ha persistito la directory <strong>public<\/strong>.<\/li>\n<li><code>Push build folder to GitHub<\/code>: questo passaggio esegue diverse operazioni Git:\n<ul>\n<li>Configura l&#8217;identit\u00e0 Git con il vostro nome utente e la vostra email GitHub.<\/li>\n<li>Clona il vostro repository GitHub in una cartella denominata <strong>deployment<\/strong> sul computer del runner CircleCI.<\/li>\n<li>Copia il contenuto della cartella <strong>workspace\/public<\/strong> (il sito Hugo compilato) nella cartella <strong>deployment<\/strong>.<\/li>\n<li>Cambia la directory di lavoro in <strong>deployment<\/strong>.<\/li>\n<li>Apporta le modifiche con un messaggio che indica che si tratta di un commit generato automaticamente da CircleCI.<\/li>\n<li>Invia le modifiche a un nuovo branch del repository GitHub.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Assicuratevi di sostituire <code>&lt;GitHubUsername&gt;<\/code> e <code>&lt;your-repo-name&gt;<\/code> con il vostro nome utente GitHub e il nome del repository. Inoltre, assicuratevi di creare un <a href=\"https:\/\/github.com\/settings\/tokens\" target=\"_blank\" rel=\"noopener noreferrer\">token di accesso a GitHub<\/a> in modo che CircleCI possa accedere al vostro account GitHub.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/10\/scopes-github-access-token.png\" alt=\"Definire gli ambiti per il token di accesso GitHub\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Definire gli ambiti per il token di accesso GitHub.<\/figcaption><\/figure>\n<p>Quindi, aggiungete il token <a href=\"https:\/\/kinsta.com\/it\/blog\/continuous-deployment-react\/#storing-environment-variables-with-circleci\">come variabile d&#8217;ambiente<\/a> denominata <code>GITHUB_TOKEN<\/code> nelle <strong>impostazioni del progetto<\/strong> CircleCI.<\/p>\n<h3>Passaggio 9: Definire il workflow<\/h3>\n<p>Una volta impostati i job, la fase successiva prevede la <a href=\"https:\/\/kinsta.com\/it\/blog\/continuous-deployment-react\/#step-5-workflow-configuration\">configurazione del workflow<\/a>. Continuando la configurazione di CircleCI, creaiamo un workflow che attivi il job <code>build<\/code> quando ci sono modifiche al codice nel branch <code>main<\/code> e che richieda che il job <code>build<\/code> sia completato con successo prima di eseguire <code>push build<\/code>:<\/p>\n<pre><code class=\"language-yaml\">workflows:\n  version: 2\n  build-and-deploy:\n    jobs:\n      - build:\n          filters:\n            branches:\n              only:\n                - main\n      - push build:\n          requires:\n            - build<\/code><\/pre>\n<h3>Passaggio 10: Commit e Push<\/h3>\n<p>Una volta configurato il workflow, eseguiamo il commit e il push delle modifiche sul repository Git. CircleCI rileva automaticamente la presenza del file di configurazione e attiva i workflow definiti in caso di modifiche al codice.<\/p>\n<figure style=\"width: 1600px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2023\/10\/circleci-pipeline.jpg\" alt=\"Dettagli della pipeline di CircleCI\" width=\"1600\" height=\"225\"><figcaption class=\"wp-caption-text\">Dettagli della pipeline di CircleCI.<\/figcaption><\/figure>\n<p>Se controllate il repository GitHub, vedrete che il branch <code>deploy<\/code> ha gi\u00e0 la cartella <strong>public<\/strong>, che contiene i file statici.<\/p>\n<p>Potete verificare la <a href=\"https:\/\/github.com\/olawanlejoel\/hugo-try-circleci\/blob\/main\/.circleci\/config.yml\" target=\"_blank\" rel=\"noopener noreferrer\">configurazione completa di CircleCI in questo repository di esempio<\/a>.<\/p>\n<h3>Passaggio 11: Distribuzione dei file statici su Kinsta<\/h3>\n<p>Il deploy su Kinsta avviene in pochi secondi, soprattutto ora che i file statici sono gi\u00e0 stati creati. Seguite questi passaggi per distribuire gratuitamente il vostro sito Hugo con l&#8217;<a href=\"https:\/\/sevalla.com\/static-site-hosting\/\">Hosting di Siti Statici<\/a>:<\/p>\n<ol start=\"1\">\n<li>Accedete o create un account per visualizzare la dashboard <a href=\"https:\/\/my.kinsta.com\/?lang=it\">MyKinsta<\/a>.<\/li>\n<li>Autorizzate Kinsta con il vostro provider Git.<\/li>\n<li>Cliccate su <strong>Siti statici<\/strong> nella barra laterale di sinistra e poi su <strong>Aggiungi sito<\/strong>.<\/li>\n<li>Selezionate il repository e il branch da cui volete distribuire il sito (il branch <code>deploy<\/code> ).<\/li>\n<li>Assegnate un nome unico al vostro sito e cliccate su <strong>Continua<\/strong>.<\/li>\n<li>Lasciate vuoti i campi <strong>Comando di build<\/strong> e <strong>Versione node<\/strong> e specificate la <strong>directory di pubblicazione<\/strong> come <code>public<\/code>.<\/li>\n<li>Infine, cliccate su <strong>Crea sito<\/strong>.<\/li>\n<\/ol>\n<p>E il gioco \u00e8 fatto! In pochi secondi avrete un sito distribuito. Viene fornito un link per accedere alla versione distribuita del sito. Se lo desiderate, potrete aggiungere il vostro <a href=\"https:\/\/docs.sevalla.com\/applications\/domains\">dominio personalizzato<\/a> e il vostro <a href=\"https:\/\/docs.sevalla.com\/applications\/domains#install-a-custom-ssl-certificate\">certificato SSL<\/a>.<\/p>\n<h2>Usare Hugo-bin per creare e distribuire un sito Hugo su Kinsta<\/h2>\n<p>Il pacchetto <a href=\"https:\/\/www.npmjs.com\/package\/hugo-bin\" target=\"_blank\" rel=\"noopener noreferrer\">Hugo-bin<\/a> \u00e8 un wrapper binario per Hugo. Permette di costruire e distribuire il vostro progetto Hugo con comandi Node.js. Questo metodo non richiede uno strumento CI\/CD per costruire il sito prima di distribuirlo sull&#8217;Hosting di Siti Statici di Kinsta.<\/p>\n<p>Per utilizzare il pacchetto Hugo-bin nel progetto Hugo:<\/p>\n<ol start=\"1\">\n<li>Inizializzate Node.js nella root del progetto eseguendo il comando <code>npm init -y<\/code>.<\/li>\n<li>Quindi, installate Hugo-bin come developer dependency nel progetto eseguendo questo comando:<\/li>\n<\/ol>\n<pre><code class=\"language-bash\">npm i -D hugo-bin<\/code><\/pre>\n<ol start=\"3\">\n<li>Aggiungete i seguenti comandi di script al file <strong>package.json<\/strong>:<\/li>\n<\/ol>\n<pre><code class=\"language-json\">\"scripts\": {\n    \"build\": \"hugo\",\n    \"create\": \"hugo new\",\n    \"serve\": \"hugo server\"\n  }<\/code><\/pre>\n<p>In questo modo, Kinsta sar\u00e0 in grado di eseguire la build e servire il vostro sito Hugo senza il bisogno di costruire i vostri file prima di distribuirli.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>L&#8217;utilizzo di sottomoduli Git con i nostri Hosting di Siti Statici e Hosting di Applicazioni non \u00e8 attualmente possibile. Assicuratevi di aggiungere i file del tema in locale nel vostro repository Git per farlo funzionare con Kinsta.<\/p>\n<\/aside>\n\n<p>Una volta fatto tutto, inviate il codice al repository Git. Seguite questi passaggi per distribuire il sito statico su Kinsta:<\/p>\n<ol start=\"1\">\n<li>Accedete o crea un account per visualizzare la dashboard <a href=\"https:\/\/my.kinsta.com\/?lang=it\">MyKinsta<\/a>.<\/li>\n<li>Autorizzate Kinsta con il vostro provider Git.<\/li>\n<li>Cliccate su <strong>Siti statici<\/strong> nella barra laterale di sinistra e poi su <strong>Aggiungi sito<\/strong>.<\/li>\n<li>Selezionate il repository e il branch da cui desiderate effettuare il deploy.<\/li>\n<li>Assegnate un nome unico al sito.<\/li>\n<li>Aggiungete le impostazioni di build nel seguente formato:\n<ul>\n<li><strong>Comando di build:<\/strong> npm run build<\/li>\n<li><strong>Versione Node:<\/strong> 18.16.0<\/li>\n<li><strong>Directory di pubblicazione:<\/strong> public<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<ol start=\"7\">\n<li>Infine, cliccate su <strong>Crea sito<\/strong>.<\/li>\n<\/ol>\n<p>E il gioco \u00e8 fatto! Ora avete un sito distribuito in pochi secondi.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-info\">\n            <h3>Info<\/h3>\n        <p>Se utilizzate il pacchetto Hugo-bin, potete anche distribuire il sito utilizzando il nostro servizio di <a href=\"https:\/\/sevalla.com\/application-hosting\/\">Hosting di Applicazioni<\/a>. Questo pu\u00f2 rivelarsi molto vantaggioso in quanto potrete beneficiare delle funzionalit\u00e0 avanzate disponibili per il nostro servizio di Hosting di Applicazioni. Ad esempio, la scalabilit\u00e0, la distribuzione personalizzata tramite un Dockerfile e l&#8217;<a href=\"https:\/\/docs.sevalla.com\/applications\/analytics\">analisi completa<\/a> dei dati storici e in tempo reale.<\/p>\n<\/aside>\n\n<h2>Servire i file statici solo su Kinsta<\/h2>\n<p>Infine, un altro metodo per distribuire il vostro sito Hugo su Kinsta consiste nel creare il sito in locale e poi distribuirlo su Kinsta. Questo processo genera una cartella <strong>public<\/strong> nella root del progetto. Tuttavia, lo svantaggio principale di questo metodo \u00e8 che dovrete creare il sito localmente prima di ogni push, il che pu\u00f2 richiedere molto tempo e pu\u00f2 essere meno conveniente rispetto ad altri metodi che automatizzano il processo di creazione del sito.<\/p>\n<p>Per impostazione predefinita, la cartella <strong>public<\/strong> \u00e8 esclusa dal vostro repository Git grazie alla sua inclusione nel file <strong>.gitignore<\/strong>. Per includerla nel repository e distribuire il sito su Kinsta:<\/p>\n<ol start=\"1\">\n<li>Rimuovete la cartella <strong>public<\/strong> dal file <strong>.gitignore<\/strong>.<\/li>\n<li>Seguite i passaggi di distribuzione spiegati sopra.<\/li>\n<li>Distribuite il repository su Kinsta, assicurandovi che i campi <strong>Comando di build<\/strong> e <strong>Version Node<\/strong> rimangano vuoti, poich\u00e9 il sito \u00e8 gi\u00e0 stato costruito.<\/li>\n<li>Specificate la <strong>directory di pubblicazione<\/strong> come <code>public<\/code>.<\/li>\n<\/ol>\n<p>In alternativa, potete scegliere di inviare solo i file statici al vostro repository GitHub. In questo caso, non \u00e8 necessario inizializzare un repository Git nella cartella principale del progetto. Dovete solo eseguire <code>git init<\/code> all&#8217;interno della cartella <strong>public<\/strong>. Questo vi permette di mantenere il controllo di versione dei file statici separato dal resto del progetto.<\/p>\n<p>In questo scenario, quando si esegue il push dei file separatamente senza inserirli in una cartella <strong>public<\/strong>, al momento del deploy su Kinsta \u00e8 necessario specificare la <strong>directory di pubblicazione<\/strong> come <code>.<\/code>. Questa notazione rappresenta la cartella principale e Kinsta servir\u00e0 i file di conseguenza.<\/p>\n<h2>Riepilogo<\/h2>\n<p>In questo articolo abbiamo illustrato tre metodi efficaci per distribuire gratuitamente il vostro sito Hugo sulla piattaforma di Hosting di Siti Statici di Kinsta. Potete scegliere il metodo che meglio si adatta alle vostre esigenze specifiche. Inoltre, per maggiori informazioni sulla creazione di un sito statico veloce con Hugo, <a href=\"https:\/\/kinsta.com\/it\/blog\/sito-statico-hugo\/\">leggete la nostra guida completa<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hugo \u00e8 un popolare generatore di siti statici (SSG) open-source progettato per aiutare gli sviluppatori a costruire e gestire siti web in modo rapido ed efficiente. &#8230;<\/p>\n","protected":false},"author":287,"featured_media":74043,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[26179,26238],"class_list":["post-74042","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-cms-headless","topic-generatore-siti-statici"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Come distribuire gratis un sito Hugo su Kinsta - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Scopri come distribuire gratis il tuo sito Hugo sull&#039;Hosting di Siti Statici di Kinsta con questa guida. Taglia i tuoi costi di hosting oggi stesso!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Come distribuire gratuitamente un sito Hugo su Kinsta con l&#039;Hosting di Siti Statici\" \/>\n<meta property=\"og:description\" content=\"Scopri come distribuire gratis il tuo sito Hugo sull&#039;Hosting di Siti Statici di Kinsta con questa guida. Taglia i tuoi costi di hosting oggi stesso!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstaitalia\/\" \/>\n<meta property=\"article:published_time\" content=\"2023-10-20T07:31:52+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-24T06:09:55+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/10\/deploy-hugo-site-with-circle-ci-and-kinsta-static-site-hosting.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Scopri come distribuire gratis il tuo sito Hugo sull&#039;Hosting di Siti Statici di Kinsta con questa guida. Taglia i tuoi costi di hosting oggi stesso!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/10\/deploy-hugo-site-with-circle-ci-and-kinsta-static-site-hosting.jpg\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_IT\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"Come distribuire gratuitamente un sito Hugo su Kinsta con l&#8217;Hosting di Siti Statici\",\"datePublished\":\"2023-10-20T07:31:52+00:00\",\"dateModified\":\"2023-10-24T06:09:55+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/\"},\"wordCount\":2088,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/10\/deploy-hugo-site-with-circle-ci-and-kinsta-static-site-hosting.jpg\",\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/\",\"name\":\"Come distribuire gratis un sito Hugo su Kinsta - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/it\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/10\/deploy-hugo-site-with-circle-ci-and-kinsta-static-site-hosting.jpg\",\"datePublished\":\"2023-10-20T07:31:52+00:00\",\"dateModified\":\"2023-10-24T06:09:55+00:00\",\"description\":\"Scopri come distribuire gratis il tuo sito Hugo sull'Hosting di Siti Statici di Kinsta con questa guida. Taglia i tuoi costi di hosting oggi stesso!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/10\/deploy-hugo-site-with-circle-ci-and-kinsta-static-site-hosting.jpg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/10\/deploy-hugo-site-with-circle-ci-and-kinsta-static-site-hosting.jpg\",\"width\":1460,\"height\":730},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/it\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Generatore di Siti Statici\",\"item\":\"https:\/\/kinsta.com\/it\/argomenti\/generatore-siti-statici\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Come distribuire gratuitamente un sito Hugo su Kinsta con l&#8217;Hosting di Siti Statici\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/it\/#website\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Soluzioni di hosting premium, veloci e sicure\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/it\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/it\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/it\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstaitalia\/\",\"https:\/\/x.com\/Kinsta_IT\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g\",\"caption\":\"Joel Olawanle\"},\"description\":\"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.\",\"sameAs\":[\"https:\/\/joelolawanle.com\/\",\"https:\/\/www.linkedin.com\/in\/olawanlejoel\/\",\"https:\/\/x.com\/olawanle_joel\",\"https:\/\/www.youtube.com\/@joelolawanle\"],\"gender\":\"male\",\"knowsAbout\":[\"JavaScript\",\"React\",\"Next.js\"],\"knowsLanguage\":[\"English\"],\"jobTitle\":\"Technical Editor\",\"worksFor\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/it\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Come distribuire gratis un sito Hugo su Kinsta - Kinsta\u00ae","description":"Scopri come distribuire gratis il tuo sito Hugo sull'Hosting di Siti Statici di Kinsta con questa guida. Taglia i tuoi costi di hosting oggi stesso!","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/","og_locale":"it_IT","og_type":"article","og_title":"Come distribuire gratuitamente un sito Hugo su Kinsta con l'Hosting di Siti Statici","og_description":"Scopri come distribuire gratis il tuo sito Hugo sull'Hosting di Siti Statici di Kinsta con questa guida. Taglia i tuoi costi di hosting oggi stesso!","og_url":"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstaitalia\/","article_published_time":"2023-10-20T07:31:52+00:00","article_modified_time":"2023-10-24T06:09:55+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/10\/deploy-hugo-site-with-circle-ci-and-kinsta-static-site-hosting.jpg","type":"image\/jpeg"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Scopri come distribuire gratis il tuo sito Hugo sull'Hosting di Siti Statici di Kinsta con questa guida. Taglia i tuoi costi di hosting oggi stesso!","twitter_image":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/10\/deploy-hugo-site-with-circle-ci-and-kinsta-static-site-hosting.jpg","twitter_creator":"@olawanle_joel","twitter_site":"@Kinsta_IT","twitter_misc":{"Scritto da":"Joel Olawanle","Tempo di lettura stimato":"12 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"Come distribuire gratuitamente un sito Hugo su Kinsta con l&#8217;Hosting di Siti Statici","datePublished":"2023-10-20T07:31:52+00:00","dateModified":"2023-10-24T06:09:55+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/"},"wordCount":2088,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/10\/deploy-hugo-site-with-circle-ci-and-kinsta-static-site-hosting.jpg","inLanguage":"it-IT","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/","url":"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/","name":"Come distribuire gratis un sito Hugo su Kinsta - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/10\/deploy-hugo-site-with-circle-ci-and-kinsta-static-site-hosting.jpg","datePublished":"2023-10-20T07:31:52+00:00","dateModified":"2023-10-24T06:09:55+00:00","description":"Scopri come distribuire gratis il tuo sito Hugo sull'Hosting di Siti Statici di Kinsta con questa guida. Taglia i tuoi costi di hosting oggi stesso!","breadcrumb":{"@id":"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#primaryimage","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/10\/deploy-hugo-site-with-circle-ci-and-kinsta-static-site-hosting.jpg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/10\/deploy-hugo-site-with-circle-ci-and-kinsta-static-site-hosting.jpg","width":1460,"height":730},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/it\/blog\/hugo-stsh-con-circleci\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/it\/"},{"@type":"ListItem","position":2,"name":"Generatore di Siti Statici","item":"https:\/\/kinsta.com\/it\/argomenti\/generatore-siti-statici\/"},{"@type":"ListItem","position":3,"name":"Come distribuire gratuitamente un sito Hugo su Kinsta con l&#8217;Hosting di Siti Statici"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/it\/#website","url":"https:\/\/kinsta.com\/it\/","name":"Kinsta\u00ae","description":"Soluzioni di hosting premium, veloci e sicure","publisher":{"@id":"https:\/\/kinsta.com\/it\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/it\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/it\/","logo":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/it\/wp-content\/uploads\/sites\/2\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/it\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstaitalia\/","https:\/\/x.com\/Kinsta_IT","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/kinsta.com\/it\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/051bf577ce2c837846a1db9eef184758?s=96&d=mm&r=g","caption":"Joel Olawanle"},"description":"Joel is a Frontend developer working at Kinsta as a Technical Editor. He is a passionate teacher with love for open source and has written over 300 technical articles majorly around JavaScript and it's frameworks.","sameAs":["https:\/\/joelolawanle.com\/","https:\/\/www.linkedin.com\/in\/olawanlejoel\/","https:\/\/x.com\/olawanle_joel","https:\/\/www.youtube.com\/@joelolawanle"],"gender":"male","knowsAbout":["JavaScript","React","Next.js"],"knowsLanguage":["English"],"jobTitle":"Technical Editor","worksFor":"Kinsta","url":"https:\/\/kinsta.com\/it\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/74042","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/comments?post=74042"}],"version-history":[{"count":6,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/74042\/revisions"}],"predecessor-version":[{"id":74064,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/posts\/74042\/revisions\/74064"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/74042\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/74042\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/74042\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/74042\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/74042\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/74042\/translations\/jp"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/74042\/translations\/es"},{"href":"https:\/\/kinsta.com\/it\/wp-json\/kinsta\/v1\/posts\/74042\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media\/74043"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/media?parent=74042"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/tags?post=74042"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/it\/wp-json\/wp\/v2\/topic?post=74042"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}