{"id":63941,"date":"2025-11-20T14:01:12","date_gmt":"2025-11-20T13:01:12","guid":{"rendered":"https:\/\/kinsta.com\/nl\/?p=63941&#038;preview=true&#038;preview_id=63941"},"modified":"2025-11-26T11:39:18","modified_gmt":"2025-11-26T10:39:18","slug":"wordpress-ontwikkelen-radicle","status":"publish","type":"post","link":"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/","title":{"rendered":"WordPress ontwikkelen met Radicle: deployen op Kinsta"},"content":{"rendered":"<p>Moderne WordPress-ontwikkeling is allang voorbij het tijdperk van handmatig geknutsel en rommelige deploys. Radicle combineert de ontwikkeltools van <a href=\"https:\/\/roots.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">Roots<\/a> en andere WordPress tools, zoals <a href=\"https:\/\/roots.io\/bedrock\/\" target=\"_blank\" rel=\"noopener noreferrer\">Bedrock<\/a>, <a href=\"https:\/\/roots.io\/sage\/\" target=\"_blank\" rel=\"noopener noreferrer\">Sage<\/a> en <a href=\"https:\/\/roots.io\/acorn\/\" target=\"_blank\" rel=\"noopener noreferrer\">Acorn<\/a>, in \u00e9\u00e9n starterstack.<\/p>\n<p data-start=\"404\" data-end=\"500\">Het resultaat? De elegante, productieve workflow van Laravel, maar dan gewoon in WordPress.<\/p>\n<p>En door Radicle op Kinsta te draaien, benut je een hostingomgeving die perfect aansluit op deze moderne stack.\u00a0 Je krijgt <a href=\"https:\/\/kinsta.com\/nl\/docs\/wordpress-hosting\/verbinden-met-ssh\/\">SSH-toegang<\/a>, <a href=\"https:\/\/kinsta.com\/nl\/docs\/wordpress-hosting\/sitebeheer\/wordpress-wp-cli\/\">WP-CLI integratie<\/a> en de mogelijkheid om <a href=\"https:\/\/kinsta.com\/nl\/changelog\/custom-webroot\/\">je document root te configureren<\/a>.<\/p>\n<p data-start=\"725\" data-end=\"833\">Deze gids laat je zien hoe je Radicle instelt op Kinsta en hoe je zonder gedoe je deployment-workflow opzet.<\/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>Radicle en zijn componenten<\/h2>\n<p><a href=\"https:\/\/roots.io\/radicle\/\" target=\"_blank\" rel=\"noopener noreferrer\">Radicle<\/a> combineert drie verschillende Roots projecten in een ge\u00efntegreerde ontwikkelomgeving:<\/p>\n<ul>\n<li><strong>Bedrock<\/strong> levert de basis met zijn verbeterde mappenstructuur en op Composer gebaseerd dependency-beheer.<\/li>\n<li><strong>Sage<\/strong> behandelt thema-ontwikkeling met <a href=\"https:\/\/kinsta.com\/blog\/tailwind-css\/\">Tailwind CSS<\/a> integratie en <a href=\"https:\/\/kinsta.com\/blog\/vite-vs-webpack\/\">Vite<\/a> voor het bouwen van assets.<\/li>\n<li><strong>Acorn<\/strong> slaat een brug tussen WordPress en <a href=\"https:\/\/kinsta.com\/nl\/blog\/wat-is-laravel\/\">Laravel<\/a> door <a href=\"https:\/\/kinsta.com\/nl\/blog\/laravel-blade\/\">Blade templates<\/a>, migraties, routing en meer in je WordPress projecten te brengen.<\/li>\n<\/ul>\n<p>Dit type ontwikkelomgeving stelt je in staat om direct vanuit de project root te werken, in plaats van binnen de typische themamappen. Je templates staan in <code>resources\/views\/<\/code> in de project root, terwijl de configuratie gebeurt via omgevingsspecifieke bestanden in de <code>bedrock<\/code> directory.<\/p>\n<p><a href=\"https:\/\/getcomposer.org\/\" target=\"_blank\" rel=\"noopener noreferrer\">Composer<\/a> beheert WordPress core, plugins en aangepaste afhankelijkheden via een enkel <code>composer.json<\/code> bestand. De stack vereist PHP 8.3 of hoger, samen met specifieke extensies. Je hebt ook Composer nodig voor het beheer van afhankelijkheden en WP-CLI voor opdrachtregelbewerkingen.<\/p>\n<h3>Radicle vs. traditionele WordPress<\/h3>\n<p>Standaard WordPress installaties (d.w.z. alles in de <code>wp-content<\/code> directory plaatsen) kan versiebeheer bemoeilijken en het moeilijk maken om consistente installaties te onderhouden in verschillende omgevingen.<\/p>\n<p>Radicle herstructureert dit echter zodat je versiebeheer kunt uitvoeren voor je applicatiecode zonder de WordPress core bestanden of ge\u00fcploade media te volgen:<\/p>\n<ul>\n<li>WordPress core staat in de <code>public\/wp<\/code> map, gescheiden van je applicatiecode.<\/li>\n<li>De map <code>public\/content<\/code> vervangt <code>wp-content<\/code> en je custom themacode staat in de project root.<\/li>\n<\/ul>\n<p>De Laravel-stijl configuratie gebruikt een <code>.env<\/code> bestand in plaats van databasegegevens en beveiligingssleutels in te sluiten in configuratiebestanden. Je <a href=\"https:\/\/kinsta.com\/blog\/what-is-an-environment-variable\/\">definieert verschillende instellingen<\/a> voor ontwikkel-, test- en productieomgevingen via aparte configuratiebestanden in <code>bedrock\/environments\/<\/code>.<\/p>\n<p>Je versiebeheer-strategie profiteert hiervan omdat je alleen je applicatiecode en configuratie volgt. WordPress core updates vinden plaats via Composer, plugins dienen als dependencies en themawijzigingen worden opgeslagen in je repository.<\/p>\n<h2>Radicle configureren voor Kinsta<\/h2>\n<p>Bij het deployen naar Kinsta heb je <a href=\"https:\/\/kinsta.com\/nl\/docs\/wordpress-hosting\/verbinden-met-ssh\/\">SSH sleutel authenticatie<\/a> nodig, die beschikbaar is via het MyKinsta dashboard.<\/p>\n<p>Zoek je SFTP\/SSH toegangsgegevens op in de sectie <strong>Info<\/strong> van de site en voeg je publieke SSH-sleutel toe als je dat nog niet hebt gedaan.<\/p>\n<figure id=\"attachment_200394\" aria-describedby=\"caption-attachment-200394\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-200394 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/10\/ssh-keys.png\" alt=\"De MyKinsta Info-pagina met het gedeelte Primaire SFTP\/SSH-gebruiker en opties om de juiste authenticatiemethoden in te stellen.\" width=\"1200\" height=\"638\"><figcaption id=\"caption-attachment-200394\" class=\"wp-caption-text\">De SSH\/SFTP informatie binnen MyKinsta.<\/figcaption><\/figure>\n<p>De infrastructuur van Kinsta komt overeen met de technische vereisten van Radicle. Het draait <a href=\"https:\/\/kinsta.com\/nl\/blog\/php-8-3\/\">PHP 8.3<\/a>, bevat Composer voor het beheer van dependencies en heeft <a href=\"https:\/\/kinsta.com\/nl\/blog\/wp-cli\/\">WP-CLI<\/a> voorge\u00efnstalleerd, zodat je WordPress direct vanaf de opdrachtregel kunt beheren.<\/p>\n<p>In tegenstelling tot een traditionele WordPress installatie, gebruikt Radicle een release-gebaseerde mappenstructuur. Elke deployment cre\u00ebert een release map met tijdstempel en een <code data-start=\"2609\" data-end=\"2618\">current<\/code> symlink verwijst naar de actieve versie. De web root voor je applicatie moet worden ingesteld op <code>public\/current\/public<\/code>.<\/p>\n<p>Configureer vervolgens je omgevingsvariabelen. Kopieer het bestand <code data-start=\"2808\" data-end=\"2822\">.env.example<\/code> in je Radicle project root en hernoem het naar <code data-start=\"2874\" data-end=\"2880\">.env<\/code>. Voeg vervolgens je <a href=\"https:\/\/kinsta.com\/nl\/docs\/wordpress-hosting\/databasebeheer\/wordpress-database-toegang\/\">databasegegevens<\/a> en omgevingsinstellingen toe:<\/p>\n<pre><code class=\"language-bash\">DB_NAME='your_database_name'\nDB_USER='your_database_user'\nDB_PASSWORD='your_database_password'\nDB_HOST='your_database_host'\nWP_ENV='staging'\nWP_HOME='https:\/\/{kinsta-staging-url}'\nWP_SITEURL=\"${WP_HOME}\/wp\"\n<\/code><\/pre>\n<p>Radicle installeert WordPress core in een <code data-start=\"3213\" data-end=\"3218\">\/wp<\/code> submap. Dit houdt de corebestanden gescheiden van je custom applicatiecode en ondersteunt een schonere, versiegestuurde structuur.<\/p>\n<h3>Staging-configuratie<\/h3>\n<p data-start=\"2099\" data-end=\"2431\">Je configuratiemap bevindt zich in de root van je Radicle project, naast de mappen <code data-start=\"2188\" data-end=\"2196\">public<\/code> en <code data-start=\"2201\" data-end=\"2212\">resources<\/code>. Open <code data-start=\"2227\" data-end=\"2261\">bedrock\/environments\/staging.php<\/code> om instellingen te defini\u00ebren die specifiek zijn voor je stagingomgeving. Dit bestand overschrijft waarden van <code data-start=\"2351\" data-end=\"2376\">bedrock\/application.php<\/code> wanneer het <code data-start=\"2390\" data-end=\"2396\">.env<\/code> bestand <code data-start=\"2407\" data-end=\"2415\">WP_ENV<\/code> op <code data-start=\"2419\" data-end=\"2428\">staging<\/code> zet.<\/p>\n<p data-start=\"2436\" data-end=\"2530\">Stel de URL van je <a href=\"https:\/\/kinsta.com\/nl\/docs\/wordpress-hosting\/testomgeving\/\">staging site<\/a> in door de volgende constanten toe te voegen bovenaan <code data-start=\"2514\" data-end=\"2527\">staging.php<\/code>:<\/p>\n<pre><code class=\"language-php\">&lt;?php\ndefine('WP_HOME', 'https:\/\/staging-url');\ndefine('WP_SITEURL', WP_HOME . '\/wp');\n<\/code><\/pre>\n<p>De staging URL volgt het patroon binnen de sectie <b>Omgevingen <\/b>van je site bij het selecteren van de staging-omgeving (testomgeving).<\/p>\n<figure id=\"attachment_200395\" aria-describedby=\"caption-attachment-200395\" style=\"width: 1200px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-200395 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2025\/10\/site-environments.png\" alt=\"Het MyKinsta-dashboard met het vervolgkeuzemenu voor site-omgevingen, waarin zowel een live- als een staging-omgeving kan worden geselecteerd.\" width=\"1200\" height=\"423\"><figcaption id=\"caption-attachment-200395\" class=\"wp-caption-text\">De URL van je staging-omgeving vinden in MyKinsta.<\/figcaption><\/figure>\n<p>Je deploymentpad bepaalt waar bestanden landen op de Kinsta server. Noteer in MyKinsta het pad onder <strong>Omgevingsdetails<\/strong>. Dit pad is meestal <code>\/www\/sitename\/public<\/code> en vertegenwoordigt je deployment-doel. Je deploymentscript synchroniseert hier bestanden en cre\u00ebert een structuur zoals <code>\/www\/sitename\/public\/releases\/timestamp<\/code> voor elke deployment, met <code>\/www\/sitename\/public\/current<\/code> symlinking naar de actieve release.<\/p>\n<p>Het is ook een goed idee om de <a href=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-debugging\/\">debug modus<\/a> in te schakelen voor je testomgeving binnen <code>bedrock\/environments\/staging.php<\/code>. Daarnaast kopieer en stel je je database referenties in voor de testomgeving in je lokale <code>.env<\/code> bestand (dat niet moet worden vastgelegd voor versiebeheer). Je kunt deze ook configureren als omgevingsvariabelen op je deploymentserver. Kinsta genereert unieke referenties voor elke omgeving.<\/p>\n<h3>Productie-omgeving configuratie<\/h3>\n<p>Zodra je overschakelt naar je live omgeving vanuit het vervolgkeuzemenu in het MyKinsta dashboard, zal het configuratieproces de testomgeving weerspiegelen, maar productiespecifieke waarden en strengere beveiligingsinstellingen gebruiken.<\/p>\n<p>Om dit te doen, open <code>bedrock\/environments\/production.php<\/code> in de <code>bedrock<\/code> directory van je project root en wijzig de productie URL:<\/p>\n<pre><code class=\"language-php\">&lt;?php\ndefine('WP_HOME', 'https:\/\/yourdomain.com');\ndefine('WP_SITEURL', WP_HOME . '\/wp');\n<\/code><\/pre>\n<p>Je productie foutafhandeling zal verschillen van de testomgeving. Het belangrijkste verschil is dat je debugweergaven uitschakelt terwijl je de foutregistratie behoudt:<\/p>\n<pre><code class=\"language-php\">define('WP_DEBUG', false);\ndefine('WP_DEBUG_LOG', true);\ndefine('WP_DEBUG_DISPLAY', false);\ndefine('SCRIPT_DEBUG', false); <\/code><\/pre>\n<p>Kopieer daarnaast de productiedatabasegegevens van MyKinsta&#8217;s <strong>Database toegang<\/strong> sectie terwijl je in je live omgeving bent. Deze referenties verschillen meestal van die van de testomgeving. De paden voor productie-deployment volgen echter hetzelfde patroon als staging, maar verwijzen naar de map van je live-omgeving. Het pad binnen MyKinsta&#8217;s <strong>Omgevingsdetails <\/strong>zal waarschijnlijk een andere (maar vergelijkbare) URL hebben. Je deploymentscript zal zich richten op dit pad voor productiereleases.<\/p>\n<h3>Deployment taken wijzigen<\/h3>\n<p>De standaard deployment van Radicle gaat uit van servercontrole die Kinsta niet biedt via managed hosting. Daarom moet je alle deployment taken verwijderen die server services proberen te beheren.<\/p>\n<p>Als je <a href=\"https:\/\/roots.io\/trellis\/\">Trellis<\/a> gebruikt (Radicle&#8217;s standaard deployment tool), bewerk dan <code>trellis\/roles\/deploy\/hooks\/finalize-after.yml<\/code> en verwijder de <code>Reload php-fpm<\/code> taak helemaal. Kinsta beheert PHP-FPM herstart automatisch bij het detecteren van bestandswijzigingen.<\/p>\n<p>Het wissen van de cache gebeurt ook via <a href=\"https:\/\/kinsta.com\/nl\/blog\/ci-cd-pipeline-maken\/\">Kinsta&#8217;s API<\/a> in plaats van via serveropdrachten, dus je moet elke servergebaseerde cacheverwijdering vervangen door een HTTP-verzoek naar Kinsta&#8217;s cacheverwijderingseindpunt. Je kunt deze taak toevoegen aan je deployment finalize hook zodra je <a href=\"https:\/\/kinsta.com\/nl\/blog\/kinsta-api-sleutel\/\">een API sleutel hebt ingesteld<\/a>:<\/p>\n<pre><code class=\"language-php\">- name: Clear Kinsta cache\nuri:\n  url: \"{{ site_env.wp_home }}\/kinsta-clear-cache-endpoint\/\"\n  method: GET\n<\/code><\/pre>\n<p>Elke site heeft een uniek endpoint voor beveiliging, die je kunt krijgen van het supportteam van Kinsta.<\/p>\n<p>Assetcompilatie wordt uitgevoerd v\u00f3\u00f3r de deployment, niet op de server. Je lokale ontwikkelmachine of <a href=\"https:\/\/kinsta.com\/nl\/blog\/ci-cd-pipeline-maken\/\">CI\/CD pijplijn<\/a> voert <code>npm run build<\/code> uit om JavaScript en CSS te compileren in de <code>public\/build<\/code> map. Deze gecompileerde onderdelen worden samen met je PHP-bestanden ingezet.<\/p>\n<p>De installatie van Composer dependencies gebeurt na bestandssynchronisatie met behulp van SSH om het volgende uit te voeren:<\/p>\n<pre><code class=\"language-bash\">cd \/www\/sitename\/public\/current\ncomposer install --no-dev --optimize-autoloader --no-interaction\n<\/code><\/pre>\n<p>De <code>--no-dev<\/code> flag sluit ontwikkelingsdepencies uit, zoals testframeworks en debugtools. De vlag <code>--optimize-autoloader<\/code> bouwt klassenkaarten voor sneller automatisch laden, waardoor de overhead van het lokaliseren van klassenbestanden tijdens aanvragen wordt verminderd.<\/p>\n<h2>De Kinsta MU plugin toevoegen aan Radicle<\/h2>\n<p>De Kinsta MU plugin maakt full-page caching, CDN-integratie en cachebeheer voor je site mogelijk via MyKinsta. Vanwege de niet-standaard mappenstructuur van Radicle moet je een aantal specifieke configuratieconstanten instellen, hoewel je de <a href=\"https:\/\/kinsta.com\/nl\/docs\/wordpress-hosting\/kinsta-mu-plugin\/\">Kinsta MU plugin<\/a> aan Radicle kunt toevoegen via Composer. Je kunt deze constanten toevoegen aan je <code>bedrock\/application.php<\/code> bestand nadat je de plugin hebt ge\u00efnstalleerd:<\/p>\n<pre><code class=\"language-php\">\/**\n* Kinsta CDN fix for Radicle\/Bedrock structure\n*\/\n\ndefine('KINSTA_CDN_USERDIRS', 'app');\n\n\/**\n* Fix Kinsta MU Plugins URL path with Radicle\/Bedrock\n*\/\n\n$mu_plugins_url = Config::get('WP_CONTENT_URL') . '\/mu-plugins';\n\ndefine('KINSTAMU_CUSTOM_MUPLUGIN_URL', \"{$mu_plugins_url}\/kinsta-mu-plugins\");\n<\/code><\/pre>\n<p>De eerste constante specificeert je uploads directory in Bedrock&#8217;s <code>app<\/code> structuur. De tweede corrigeert de asset URL paden van de plugin zodat JavaScript en CSS bestanden correct worden geladen.<\/p>\n<p>Zodra je de installatie van de plugin hebt gecontroleerd, kun je het wissen van de cache testen via het MyKinsta dashboard om te bevestigen dat de plugin goed communiceert met de infrastructuur van Kinsta.<\/p>\n<h2>Hoe geautomatiseerde deployments in te stellen<\/h2>\n<p><a href=\"https:\/\/kinsta.com\/nl\/blog\/continuous-deployment-wordpress-github-actions\/\">GitHub Actions<\/a> is een eenvoudige manier om Radicle deployments naar Kinsta te automatiseren. Je kunt bijvoorbeeld een workflow bestand aanmaken in je repository op <code>.github\/workflows\/deploy.yml<\/code>. Deze workflow triggert op pushes naar specifieke branches, die assets bouwen en code deployen naar de corresponderende omgeving.<\/p>\n<p>SSH secrets opgeslagen in je GitHub repository zullen veilige verbindingen met Kinsta&#8217;s servers mogelijk maken. Voeg hiervoor secrets toe voor je SSH priv\u00e9sleutel, Kinsta host, SSH poort en gebruikersnaam binnen GitHub.<\/p>\n<p>Een deploymentscript orkestreert het bestandssynchronisatieproces. Dit script gebruikt meestal <code>rsync<\/code> om bestanden effici\u00ebnt over te zetten, stuurt alleen gewijzigde bestanden en houdt de juiste rechten bij. Je moet echter ontwikkelingsbestanden zoals <code>node_modules<\/code>, <code>.git<\/code>, en <code>.env<\/code> uitsluiten van de deployment om je productieomgeving schoon te houden.<\/p>\n<p>Zodra je een succesvolle bestandssynchronisatie hebt, kunnen de cache-clearing en opschoningstaken worden uitgevoerd. Het proces houdt in dat het deploymentscript een verzoek indient bij Kinsta&#8217;s <a href=\"https:\/\/api-docs.kinsta.com\/tag\/WordPress-Site-Tools#operation\/clearSiteCache\">cache clear endpoint<\/a>, wacht op bevestiging en vervolgens alle noodzakelijke opruimopdrachten uitvoert.<\/p>\n<h3>GitHub Acties configuratie<\/h3>\n<p>Je kunt je deployment automatisering defini\u00ebren in de root van het repository door een <code>.github\/workflows\/deploy.yml<\/code> bestand aan te maken. Dit zal het compileren van assets, het installeren van dependencies en het synchroniseren van bestanden naar Kinsta afhandelen.<\/p>\n<p>Begin hier met branch-specifieke triggers die de staging branch uitrollen naar je staging omgeving en <code>main<\/code> branch naar productie:<\/p>\n<pre><code class=\"language-bash\">name: Deploy to Kinsta\non:\npush:\nbranches:\n  - staging\n  - main\njobs:\ndeploy:\nruns-on: ubuntu-latest\nsteps:\n  - name: Checkout code\n    uses: actions\/checkout@v3\n  - name: Setup Node.js\n    uses: actions\/setup-node@v3\n    with:\n      node-version: '22'\n  - name: Install dependencies and build assets\n    run: |\n      npm ci\n      npm run build\n<\/code><\/pre>\n<p>Matrixstrategie\u00ebn verwerken meerdere omgevingen zonder workflowcode te dupliceren. De omgevingsspecifieke variabelen die je toevoegt kunnen veranderen op basis van welke branch de workflow heeft geactiveerd:<\/p>\n<pre><code class=\"language-php\">strategy:\n  matrix:\n    include:\n      - branch: staging\n        ssh_host: ${{ secrets.KINSTA_STAGING_HOST }}\n        ssh_port: ${{ secrets.KINSTA_STAGING_PORT }}\n        ssh_user: ${{ secrets.KINSTA_STAGING_USER }}\n        deploy_path: \/www\/sitename_1\/public\n      - branch: main\n        ssh_host: ${{ secrets.KINSTA_PRODUCTION_HOST }}\n        ssh_port: ${{ secrets.KINSTA_PRODUCTION_PORT }}\n        ssh_user: ${{ secrets.KINSTA_PRODUCTION_USER }}\n        deploy_path: \/www\/sitename_2\/public\n<\/code><\/pre>\n<p>Asset compilatiestappen maken geoptimaliseerde JavaScript- en CSS-bestanden voordat ze worden ingezet. De workflow gebruikt <code>npm ci<\/code> in plaats van <code>npm install<\/code> voor reproduceerbare builds op basis van je <code>package-lock.json<\/code> bestand. Het <code>npm run build<\/code> commando voert je productie build script uit dat is gedefinieerd in <code>package.json<\/code>, waarbij meestal Vite of een andere bundler wordt uitgevoerd om assets te compileren en te minen.<\/p>\n<p>Op dit punt kun je de Composer installatie toevoegen na de Node.js stappen:<\/p>\n<pre><code class=\"language-php\">- name: Setup PHP\n  uses: server\/setup-php@v2\n  with:\n    php-version: '8.3'\n\n  - name: Install Composer dependencies\n    run: composer install --no-dev --optimize-autoloader --no-interaction\n<\/code><\/pre>\n<p>De workflow heeft nu gecompileerde assets en ge\u00efnstalleerde dependencies, klaar voor deployment op Kinsta.<\/p>\n<h3>Deployment script details<\/h3>\n<p>Bestandssynchronisatie via <code>rsync<\/code> zet alleen gewijzigde bestanden over, waardoor de deploymenttijd tot een minimum wordt beperkt. Om dit op te lossen, voeg je deze stap toe aan je <a href=\"https:\/\/kinsta.com\/nl\/blog\/continuous-deployment-wordpress-github-actions\/\">GitHub Actions<\/a> workflow na het bouwen van je assets:<\/p>\n<pre><code class=\"language-bash\">- name: Deploy to Kinsta via rsync\n  env:\n    SSH_PRIVATE_KEY: ${{ secrets.SSH_PRIVATE_KEY }}\n  run: |\n    mkdir -p ~\/.ssh\n    echo \"$SSH_PRIVATE_KEY\" &gt; ~\/.ssh\/deploy_key\n    chmod 600 ~\/.ssh\/deploy_key\n    rsync -avz --delete \n      --exclude='.git' \n      --exclude='node_modules' \n      --exclude='.env' \n      --exclude='trellis' \n      -e \"ssh -i ~\/.ssh\/deploy_key -p ${{ matrix.ssh_port }} -o StrictHostKeyChecking=no\" \n      .\/ ${{ matrix.ssh_user }}@${{ matrix.ssh_host }}:${{ matrix.deploy_path }}\/releases\/$(date +%Y%m%d%H%M%S)\/<\/code><\/pre>\n<p>De rsync flags bepalen het gedrag voor de transfer:<\/p>\n<ul>\n<li><code>-a<\/code> schakelt archiefmodus in met behoud van permissies en tijdstempels.<\/li>\n<li><code>-v<\/code> geeft uitgebreide uitvoer voor debuggen.<\/li>\n<li><code>-z<\/code> comprimeert gegevens tijdens de transfer.<\/li>\n<\/ul>\n<p>De <code>--delete<\/code> flag verwijdert bestanden van de server die niet meer bestaan in je archief, waardoor je deployment schoon blijft.<\/p>\n<p>Uitsluitingspatronen voorkomen het overzetten van onnodige bestanden. Bovendien blijven Git metadata, ontwikkelingsdependencies, omgevingsbestanden en deploymenttools weg van de productieserver. De mapstructuur van de release maakt mappen met tijdstempels voor elke deployment om snelle rollbacks mogelijk te maken door symlinks te veranderen.<\/p>\n<p>Symlink beheer verbindt je persistente gegevens met elke nieuwe release. Na het synchroniseren van bestanden kun je SSH-en naar de server en symlinks aanmaken:<\/p>\n<pre><code class=\"language-bash\">- name: Create symlinks and update current\n  run: |\n    ssh -i ~\/.ssh\/deploy_key -p ${{ matrix.ssh_port }} -o StrictHostKeyChecking=no \n      ${{ matrix.ssh_user }}@${{ matrix.ssh_host }} &lt;&lt; 'EOF'\n    cd ${{ matrix.deploy_path }}\n    # Link shared .env file\n    ln -nfs ${{ matrix.deploy_path }}\/shared\/.env \n      ${{ matrix.deploy_path }}\/releases\/$(ls -t releases | head -1)\/.env\n    # Link uploads directory\n    ln -nfs ${{ matrix.deploy_path }}\/shared\/public\/content\/uploads \n      ${{ matrix.deploy_path }}\/releases\/$(ls -t releases | head -1)\/public\/content\/uploads\n    # Update current symlink atomically\n    ln -nfs ${{ matrix.deploy_path }}\/releases\/$(ls -t releases | head -1) \n      ${{ matrix.deploy_path }}\/current\n    EOF<\/code><\/pre>\n<p>Het bestand <code>.env<\/code> bevat omgevingsspecifieke configuraties die bij verschillende deployments blijven bestaan. Uploads die buiten de release map zijn opgeslagen voorkomen het verlies van mediabestanden wanneer oude releases worden verwijderd. De atomic symlink update (<code>ln -nfs<\/code>) zorgt voor nul downtime, omdat verzoeken nooit een half ge\u00efmplementeerde release raken.<\/p>\n<p>Cleanup verwijdert oude releases na een succesvolle deployment om alleen de vijf meest recente te bewaren:<\/p>\n<pre><code class=\"language-bash\">- name: Clean up old releases\n  run: |\n    ssh -i ~\/.ssh\/deploy_key -p ${{ matrix.ssh_port }} -o StrictHostKeyChecking=no \n      ${{ matrix.ssh_user }}@${{ matrix.ssh_host }} &lt;&lt; 'EOF'\n    cd ${{ matrix.deploy_path }}\/releases\n    ls -t | tail -n +6 | xargs rm -rf\n    EOF<\/code><\/pre>\n<p>Deze opruimstrategie zorgt voor een balans tussen schijfruimtegebruik en terugdraaimogelijkheden. Vijf releases bieden meerdere terugdraaipunten terwijl oneindige opslaggroei wordt voorkomen.<\/p>\n<h2>Samenvatting<\/h2>\n<p>Radicle transformeert WordPress ontwikkeling door de verbeterde structuur van Bedrock, de moderne themaworkflow van Sage en de Laravel functies van Acorn te integreren in \u00e9\u00e9n stack.<\/p>\n<p>Het deployen op Kinsta vereist een configuratie die verder gaat dan standaard WordPress hosting, maar levert voordelen op in beveiliging, onderhoudbaarheid en ontwikkelaarservaring die de installatie-inspanning rechtvaardigen.<\/p>\n<p>Als je klaar bent om met vertrouwen moderne WordPress applicaties te deployen, <a href=\"https:\/\/kinsta.com\/nl\/wordpress-hosting\/\">ontdek dan Kinsta&#8217;s managed WordPress hosting<\/a> en ervaar een hosting-infrastructuur die de door jou gewenste aangepaste ontwikkelworkflow ondersteunt.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Moderne WordPress-ontwikkeling is allang voorbij het tijdperk van handmatig geknutsel en rommelige deploys. Radicle combineert de ontwikkeltools van Roots en andere WordPress tools, zoals Bedrock, Sage &#8230;<\/p>\n","protected":false},"author":287,"featured_media":63942,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[],"topic":[892],"class_list":["post-63941","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","topic-wordpress-ontwikkeling"],"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>WordPress ontwikkelen met Radicle: deployen op Kinsta<\/title>\n<meta name=\"description\" content=\"Moderne WordPress ontwikkeling vraagt om betere tools en werkprocessen. In dit artikel leggen we uit hoe je Radicle op Kinsta kunt instellen en gebruiken!\" \/>\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\/nl\/blog\/wordpress-ontwikkelen-radicle\/\" \/>\n<meta property=\"og:locale\" content=\"nl_NL\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WordPress ontwikkelen met Radicle: deployen op Kinsta\" \/>\n<meta property=\"og:description\" content=\"Moderne WordPress ontwikkeling vraagt om betere tools en werkprocessen. In dit artikel leggen we uit hoe je Radicle op Kinsta kunt instellen en gebruiken!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-20T13:01:12+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-11-26T10:39:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/11\/radicle.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1470\" \/>\n\t<meta property=\"og:image:height\" content=\"735\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Joel Olawanle\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Moderne WordPress ontwikkeling vraagt om betere tools en werkprocessen. In dit artikel leggen we uit hoe je Radicle op Kinsta kunt instellen en gebruiken!\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/11\/radicle.png\" \/>\n<meta name=\"twitter:creator\" content=\"@olawanle_joel\" \/>\n<meta name=\"twitter:site\" content=\"@Kinsta_NL\" \/>\n<meta name=\"twitter:label1\" content=\"Geschreven door\" \/>\n\t<meta name=\"twitter:data1\" content=\"Joel Olawanle\" \/>\n\t<meta name=\"twitter:label2\" content=\"Geschatte leestijd\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/\"},\"author\":{\"name\":\"Joel Olawanle\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\"},\"headline\":\"WordPress ontwikkelen met Radicle: deployen op Kinsta\",\"datePublished\":\"2025-11-20T13:01:12+00:00\",\"dateModified\":\"2025-11-26T10:39:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/\"},\"wordCount\":1864,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/11\/radicle.png\",\"inLanguage\":\"nl-NL\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/\",\"url\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/\",\"name\":\"WordPress ontwikkelen met Radicle: deployen op Kinsta\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/11\/radicle.png\",\"datePublished\":\"2025-11-20T13:01:12+00:00\",\"dateModified\":\"2025-11-26T10:39:18+00:00\",\"description\":\"Moderne WordPress ontwikkeling vraagt om betere tools en werkprocessen. In dit artikel leggen we uit hoe je Radicle op Kinsta kunt instellen en gebruiken!\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/#breadcrumb\"},\"inLanguage\":\"nl-NL\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/11\/radicle.png\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/11\/radicle.png\",\"width\":1470,\"height\":735},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/nl\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WordPress ontwikkeling\",\"item\":\"https:\/\/kinsta.com\/nl\/onderwerpen\/wordpress-ontwikkeling\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"WordPress ontwikkelen met Radicle: deployen op Kinsta\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/nl\/#website\",\"url\":\"https:\/\/kinsta.com\/nl\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Snelle, veilige, premium hostingoplossingen\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/nl\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"nl-NL\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/nl\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/nl\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/\",\"https:\/\/x.com\/Kinsta_NL\",\"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\/nl\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07\",\"name\":\"Joel Olawanle\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"nl-NL\",\"@id\":\"https:\/\/kinsta.com\/nl\/#\/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\/nl\/blog\/author\/joelolawanle\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"WordPress ontwikkelen met Radicle: deployen op Kinsta","description":"Moderne WordPress ontwikkeling vraagt om betere tools en werkprocessen. In dit artikel leggen we uit hoe je Radicle op Kinsta kunt instellen en gebruiken!","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\/nl\/blog\/wordpress-ontwikkelen-radicle\/","og_locale":"nl_NL","og_type":"article","og_title":"WordPress ontwikkelen met Radicle: deployen op Kinsta","og_description":"Moderne WordPress ontwikkeling vraagt om betere tools en werkprocessen. In dit artikel leggen we uit hoe je Radicle op Kinsta kunt instellen en gebruiken!","og_url":"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","article_published_time":"2025-11-20T13:01:12+00:00","article_modified_time":"2025-11-26T10:39:18+00:00","og_image":[{"width":1470,"height":735,"url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/11\/radicle.png","type":"image\/png"}],"author":"Joel Olawanle","twitter_card":"summary_large_image","twitter_description":"Moderne WordPress ontwikkeling vraagt om betere tools en werkprocessen. In dit artikel leggen we uit hoe je Radicle op Kinsta kunt instellen en gebruiken!","twitter_image":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/11\/radicle.png","twitter_creator":"@olawanle_joel","twitter_site":"@Kinsta_NL","twitter_misc":{"Geschreven door":"Joel Olawanle","Geschatte leestijd":"12 minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/"},"author":{"name":"Joel Olawanle","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07"},"headline":"WordPress ontwikkelen met Radicle: deployen op Kinsta","datePublished":"2025-11-20T13:01:12+00:00","dateModified":"2025-11-26T10:39:18+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/"},"wordCount":1864,"publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/11\/radicle.png","inLanguage":"nl-NL"},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/","url":"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/","name":"WordPress ontwikkelen met Radicle: deployen op Kinsta","isPartOf":{"@id":"https:\/\/kinsta.com\/nl\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/11\/radicle.png","datePublished":"2025-11-20T13:01:12+00:00","dateModified":"2025-11-26T10:39:18+00:00","description":"Moderne WordPress ontwikkeling vraagt om betere tools en werkprocessen. In dit artikel leggen we uit hoe je Radicle op Kinsta kunt instellen en gebruiken!","breadcrumb":{"@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/#breadcrumb"},"inLanguage":"nl-NL","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/"]}]},{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/#primaryimage","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/11\/radicle.png","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2025\/11\/radicle.png","width":1470,"height":735},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/nl\/blog\/wordpress-ontwikkelen-radicle\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/nl\/"},{"@type":"ListItem","position":2,"name":"WordPress ontwikkeling","item":"https:\/\/kinsta.com\/nl\/onderwerpen\/wordpress-ontwikkeling\/"},{"@type":"ListItem","position":3,"name":"WordPress ontwikkelen met Radicle: deployen op Kinsta"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/nl\/#website","url":"https:\/\/kinsta.com\/nl\/","name":"Kinsta\u00ae","description":"Snelle, veilige, premium hostingoplossingen","publisher":{"@id":"https:\/\/kinsta.com\/nl\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/nl\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"nl-NL"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/nl\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/nl\/","logo":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/nl\/wp-content\/uploads\/sites\/7\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/nl\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Kinsta-Nederland-476213452787823\/","https:\/\/x.com\/Kinsta_NL","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\/nl\/#\/schema\/person\/efa7de30245ca15be5ce1dcacff89c07","name":"Joel Olawanle","image":{"@type":"ImageObject","inLanguage":"nl-NL","@id":"https:\/\/kinsta.com\/nl\/#\/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\/nl\/blog\/author\/joelolawanle\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/63941","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/users\/287"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/comments?post=63941"}],"version-history":[{"count":8,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/63941\/revisions"}],"predecessor-version":[{"id":63999,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/posts\/63941\/revisions\/63999"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/63941\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/63941\/translations\/it"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/63941\/translations\/pt"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/63941\/translations\/fr"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/63941\/translations\/de"},{"embeddable":true,"hreflang":"ja","title":"Japanese","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/63941\/translations\/jp"},{"embeddable":true,"hreflang":"nl","title":"Dutch","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/63941\/translations\/nl"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/63941\/translations\/es"},{"href":"https:\/\/kinsta.com\/nl\/wp-json\/kinsta\/v1\/posts\/63941\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media\/63942"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/media?parent=63941"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/tags?post=63941"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/nl\/wp-json\/wp\/v2\/topic?post=63941"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}