{"id":255,"date":"2026-03-16T00:00:00","date_gmt":"2026-03-15T23:00:00","guid":{"rendered":"https:\/\/helloblog.io\/nl\/wp-composer-onafhankelijk-alternatief-voor-wpackagist\/"},"modified":"2026-03-16T00:00:00","modified_gmt":"2026-03-15T23:00:00","slug":"wp-composer-onafhankelijk-alternatief-voor-wpackagist","status":"publish","type":"post","link":"https:\/\/helloblog.io\/nl\/wp-composer-onafhankelijk-alternatief-voor-wpackagist\/","title":{"rendered":"WP Composer: een onafhankelijk alternatief voor WPackagist in je Composer-workflow"},"content":{"rendered":"\n<p>Als je WordPress professioneel bouwt met Composer, dan heb je de kans groot dat WPackagist al jaren in je <code>composer.json<\/code> staat. Het was meer dan een handige index: het werd de de-facto infrastructuurlaag waarmee je plugins en themes uit de WordPress.org-directory als Composer-packages kon binnenhalen.<\/p>\n\n\n\n<p>Sinds maart 2026 is het speelveld veranderd: WPackagist is overgenomen door WP Engine (een hostingbedrijf met private-equity backing). En juist tooling die zo centraal staat in een groot deel van de WordPress Composer-workflow wil je liever niet afhankelijk maken van \u00e9\u00e9n commerci\u00eble partij. Daarom heeft Roots <strong>WP Composer<\/strong> gelanceerd: een onafhankelijk, community-funded en volledig open source Composer-repository voor WordPress-plugins en -themes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wat is WP Composer precies?<\/h2>\n\n\n\n<p><a href=\"https:\/\/wp-composer.com\">WP Composer<\/a> is een Composer-repository (dus: een endpoint waar Composer package-metadata ophaalt) die alle gratis plugins en themes uit de WordPress.org-directory beschikbaar maakt als Composer-packages. Het project is gebouwd en wordt onderhouden door Roots, maar het uitgangspunt is nadrukkelijk onafhankelijk en transparant: de code, documentatie \u00e9n deploy-configuratie zijn publiek beschikbaar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Waarom dit ertoe doet (zeker na de overname van WPackagist)<\/h2>\n\n\n\n<p>WPackagist is oorspronkelijk gebouwd door Outlandish en is jarenlang onderhouden. In de latere fase ontstonden er zorgen: trage updates, beperkt onderhoud en weinig tot geen structurele community-inspraak. De overname door WP Engine versterkt die zorgen, omdat een stuk basisinfrastructuur voor developers daarmee in handen komt van \u00e9\u00e9n bedrijf.<\/p>\n\n\n\n<p>Wanneer fundamentele developer tooling door \u00e9\u00e9n organisatie wordt gecontroleerd, verschuift besluitvorming over beschikbaarheid, prijs en richting naar een boardroom in plaats van een open proces. Daarnaast is het onduidelijk in hoeverre WPackagist nog \u00e9cht open source is: de <a href=\"https:\/\/github.com\/outlandishideas\/wpackagist\">GitHub repository<\/a> weerspiegelt niet langer wat er live draait.<\/p>\n\n\n\n<p>Roots positioneert WP Composer daarom als alternatief dat transparant is, door de community gefinancierd wordt en ontwikkeld wordt door mensen die al lang in dit ecosysteem meedraaien. Er is ook een gedetailleerde vergelijking beschikbaar: <a href=\"https:\/\/wp-composer.com\/wp-composer-vs-wpackagist\">WP Composer vs WPackagist<\/a> (performance, metadata en verschillen in aanpak).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Wat WP Composer levert (en hoe je het gebruikt)<\/h2>\n\n\n\n<p>De kern: <strong>elke gratis plugin en theme uit de WordPress.org-directory<\/strong>, installeerbaar via Composer met <strong>schone package naming<\/strong>.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>{\n  &quot;repositories&quot;: [\n    {\n      &quot;name&quot;: &quot;wp-composer&quot;,\n      &quot;type&quot;: &quot;composer&quot;,\n      &quot;url&quot;: &quot;https:\/\/repo.wp-composer.com&quot;,\n      &quot;only&quot;: [&quot;wp-plugin\/*&quot;, &quot;wp-theme\/*&quot;]\n    }\n  ],\n  &quot;require&quot;: {\n    &quot;wp-plugin\/woocommerce&quot;: &quot;^10.0&quot;,\n    &quot;wp-theme\/twentytwentyfive&quot;: &quot;^1.0&quot;\n  }\n}\n\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">  \"repositories\"<\/span><span style=\"color:#E1E4E8\">: [<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">      \"name\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"wp-composer\"<\/span><span style=\"color:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">      \"type\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"composer\"<\/span><span style=\"color:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">      \"url\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"https:\/\/repo.wp-composer.com\"<\/span><span style=\"color:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">      \"only\"<\/span><span style=\"color:#E1E4E8\">: [<\/span><span style=\"color:#9ECBFF\">\"wp-plugin\/*\"<\/span><span style=\"color:#E1E4E8\">, <\/span><span style=\"color:#9ECBFF\">\"wp-theme\/*\"<\/span><span style=\"color:#E1E4E8\">]<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">  ],<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">  \"require\"<\/span><span style=\"color:#E1E4E8\">: {<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">    \"wp-plugin\/woocommerce\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"^10.0\"<\/span><span style=\"color:#E1E4E8\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color:#79B8FF\">    \"wp-theme\/twentytwentyfive\"<\/span><span style=\"color:#E1E4E8\">: <\/span><span style=\"color:#9ECBFF\">\"^1.0\"<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color:#E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Plugins gebruik je als <code>wp-plugin\/*<\/code>.<\/li>\n\n\n<li>Themes gebruik je als <code>wp-theme\/*<\/code>.<\/li>\n\n\n<li>Je bent dus af van de historische prefixes <code>wpackagist-plugin<\/code> en <code>wpackagist-theme<\/code>.<\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Aanbevolen in combinatie met Roots\u2019 WordPress core packages<\/h3>\n\n\n\n<p>WP Composer is ook de aanbevolen repository naast de WordPress core packages van Roots: <a href=\"https:\/\/wp-composer.com\/roots-wordpress\"><code>roots\/wordpress<\/code><\/a>, <code>roots\/wordpress-full<\/code> en <code>roots\/wordpress-no-content<\/code>. In een typische <a href=\"https:\/\/roots.io\/bedrock\/\">Bedrock<\/a>-setup gebruik je <code>roots\/wordpress<\/code> voor core en WP Composer voor plugins en themes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Migreren vanaf WPackagist (stap voor stap)<\/h2>\n\n\n\n<p>Overstappen is in de praktijk vooral: oude packages verwijderen, repository omzetten, en opnieuw requiren met de nieuwe naamstructuur.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">1) Verwijder je wpackagist packages<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>composer remove wpackagist-plugin\/woocommerce wpackagist-theme\/twentytwentyfive\n\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> remove<\/span><span style=\"color:#9ECBFF\"> wpackagist-plugin\/woocommerce<\/span><span style=\"color:#9ECBFF\"> wpackagist-theme\/twentytwentyfive<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">2) Wissel de repository-configuratie<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>composer config --unset repositories.wpackagist &amp;&amp; composer config repositories.wp-composer composer https:\/\/repo.wp-composer.com\n\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> config<\/span><span style=\"color:#79B8FF\"> --unset<\/span><span style=\"color:#9ECBFF\"> repositories.wpackagist<\/span><span style=\"color:#E1E4E8\"> &#x26;&#x26; <\/span><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> config<\/span><span style=\"color:#9ECBFF\"> repositories.wp-composer<\/span><span style=\"color:#9ECBFF\"> composer<\/span><span style=\"color:#9ECBFF\"> https:\/\/repo.wp-composer.com<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">3) Require dezelfde packages met de nieuwe naming<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>composer require wp-plugin\/woocommerce wp-theme\/twentytwentyfive\n\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">composer<\/span><span style=\"color:#9ECBFF\"> require<\/span><span style=\"color:#9ECBFF\"> wp-plugin\/woocommerce<\/span><span style=\"color:#9ECBFF\"> wp-theme\/twentytwentyfive<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Automatisch migreren met het script<\/h3>\n\n\n\n<p>Wil je je <code>composer.json<\/code> automatisch laten bijwerken, dan kun je het migratiescript draaien: <a href=\"https:\/\/github.com\/roots\/wp-composer\/blob\/main\/scripts\/migrate-from-wpackagist.sh\">migrate-from-wpackagist.sh<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#24292e\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#e1e4e8;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>curl -sO https:\/\/raw.githubusercontent.com\/roots\/wp-composer\/main\/scripts\/migrate-from-wpackagist.sh &amp;&amp; bash migrate-from-wpackagist.sh\n\n<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color:#B392F0\">curl<\/span><span style=\"color:#79B8FF\"> -sO<\/span><span style=\"color:#9ECBFF\"> https:\/\/raw.githubusercontent.com\/roots\/wp-composer\/main\/scripts\/migrate-from-wpackagist.sh<\/span><span style=\"color:#E1E4E8\"> &#x26;&#x26; <\/span><span style=\"color:#B392F0\">bash<\/span><span style=\"color:#9ECBFF\"> migrate-from-wpackagist.sh<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Gebruik je de changelog GitHub Action? Let op de naamswijziging<\/h3>\n\n\n\n<p>Als je de GitHub Action gebruikt om plugin-updates te tracken, is die hernoemd van \u201cWPackagist Changelog Action\u201d naar de <a href=\"https:\/\/github.com\/roots\/wp-composer-changelog-action\">WP Composer Changelog Action<\/a>. Die ondersteunt volledig de nieuwe <code>wp-plugin\/&lt;em&gt;<\/code> en <code>wp-theme\/&lt;\/em&gt;<\/code> naming.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Performance: waarom WP Composer sneller kan resolven<\/h2>\n\n\n\n<p>WP Composer ondersteunt Composer v2\u2019s <code>metadata-url<\/code> protocol. Dat betekent dat Composer metadata kan ophalen voor alleen de packages die jij nodig hebt. WPackagist gebruikt nog de oudere <code>provider-includes<\/code> aanpak, waardoor Composer eerst grote indexbestanden met metadata voor duizenden packages moet downloaden voordat je dependencies kunnen worden opgelost.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Composer resolve times (cold, zonder cache)<\/h3>\n\n\n\n<p>Bij een cold resolve (geen cache) geldt: lager is beter.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>10 plugins: WP Composer <strong>0.7s<\/strong> vs WPackagist 12.3s \u2192 <strong>17x sneller<\/strong><\/li>\n\n\n<li>20 plugins: WP Composer <strong>1.1s<\/strong> vs WPackagist 19.0s \u2192 <strong>17x sneller<\/strong><\/li>\n\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Metadata &#038; caching: concrete verschillen<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>Composer v2 <code>metadata-url<\/code>: WP Composer <strong>Yes<\/strong>, WPackagist <strong>No<\/strong><\/li>\n\n\n<li>CDN caching: WP Composer <code>public, max-age=300<\/code>, WPackagist <code>no-cache, private<\/code><\/li>\n\n\n<li>Per-package files: WP Composer gebruikt immutable, content-addressed files die onbeperkt gecachet kunnen worden; WPackagist is niet content-addressed<\/li>\n\n<\/ul>\n\n\n\n<div class=\"wp-block-group callout callout-info is-style-info is-layout-flow wp-block-group-is-layout-flow\" style=\"border-width:1px;border-radius:8px;padding-top:1rem;padding-right:1.5rem;padding-bottom:1rem;padding-left:1.5rem\">\n\n<h4 class=\"wp-block-heading callout-title\">Benchmark-context<\/h4>\n\n\n<p>De benchmarks zijn uitgevoerd vanaf \u00e9\u00e9n locatie met Composer 2.7+. Resultaten kunnen verschillen per regio en netwerkcondities. De benchmark-scripts zijn open source: https:\/\/github.com\/roots\/wp-composer\/tree\/main\/benchmarks.<\/p>\n\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Volledig open source (en dus te auditen en te forken)<\/h2>\n\n\n\n<p>De volledige applicatiecode, documentatie en deploymentconfiguratie van WP Composer staat op GitHub: https:\/\/github.com\/roots\/wp-composer. Het project is opgezet zodat bijdragen welkom zijn en zodat iedereen, als het nodig is, een eigen instance kan draaien door het te forken.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Community-funded: hoe het in stand gehouden wordt<\/h2>\n\n\n\n<p>WP Composer wordt volledig door de community gefinancierd via GitHub Sponsors: https:\/\/github.com\/sponsors\/roots. Dat sponsorgeld gaat direct naar infrastructuur, development en onderhoud van WP Composer en het bredere Roots-ecosysteem.<\/p>\n\n\n\n<p>Voor teams die sterk leunen op Composer in WordPress-projecten is dit vooral een manier om cruciale tooling onafhankelijk en vrij beschikbaar te houden.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Samenvatting<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n\n<li>WP Composer is een onafhankelijk Composer-repository voor WordPress.org plugins en themes, onderhouden door Roots.<\/li>\n\n\n<li>Je gebruikt nette package-namen: <code>wp-plugin\/&lt;em&gt;<\/code> en <code>wp-theme\/&lt;\/em&gt;<\/code>.<\/li>\n\n\n<li>Migreren vanaf WPackagist is een paar Composer-commando\u2019s (of een script).<\/li>\n\n\n<li>WP Composer focust op performance met Composer v2 <code>metadata-url<\/code> en caching die past bij moderne dependency-resolving.<\/li>\n\n\n<li>Het project is volledig open source en community-funded via GitHub Sponsors.<\/li>\n\n<\/ul>\n\n\n<div class=\"references-section\">\n                <h2>Referenties \/ Bronnen<\/h2>\n                <ul class=\"references-list\"><li><a href=\"https:\/\/roots.io\/introducing-wp-composer-as-a-wpackagist-replacement\/\" target=\"_blank\" rel=\"noopener noreferrer\">Introducing WP Composer as a WPackagist Replacement<\/a><\/li><li><a href=\"https:\/\/wp-composer.com\" target=\"_blank\" rel=\"noopener noreferrer\">WP Composer<\/a><\/li><li><a href=\"https:\/\/wp-composer.com\/wp-composer-vs-wpackagist\" target=\"_blank\" rel=\"noopener noreferrer\">WP Composer vs WPackagist<\/a><\/li><li><a href=\"https:\/\/github.com\/outlandishideas\/wpackagist\" target=\"_blank\" rel=\"noopener noreferrer\">outlandishideas\/wpackagist<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/wp-composer\" target=\"_blank\" rel=\"noopener noreferrer\">roots\/wp-composer<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/wp-composer\/blob\/main\/scripts\/migrate-from-wpackagist.sh\" target=\"_blank\" rel=\"noopener noreferrer\">migrate-from-wpackagist.sh<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/wp-composer-changelog-action\" target=\"_blank\" rel=\"noopener noreferrer\">roots\/wp-composer-changelog-action<\/a><\/li><li><a href=\"https:\/\/github.com\/roots\/wp-composer\/tree\/main\/benchmarks\" target=\"_blank\" rel=\"noopener noreferrer\">WP Composer benchmark scripts<\/a><\/li><li><a href=\"https:\/\/roots.io\/bedrock\/\" target=\"_blank\" rel=\"noopener noreferrer\">Bedrock<\/a><\/li><li><a href=\"https:\/\/wp-composer.com\/roots-wordpress\" target=\"_blank\" rel=\"noopener noreferrer\">roots\/wordpress<\/a><\/li><li><a href=\"https:\/\/github.com\/sponsors\/roots\" target=\"_blank\" rel=\"noopener noreferrer\">GitHub Sponsors (Roots)<\/a><\/li><\/ul>\n            <\/div>","protected":false},"excerpt":{"rendered":"<p>WPackagist was jarenlang de standaard om WordPress-plugins en -themes via Composer te installeren. Met WP Composer is er nu een community-gedreven, volledig open source alternatief met schonere package-namen en snellere dependency-resolves.<\/p>\n","protected":false},"author":22,"featured_media":254,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[63],"tags":[66,7,13,3],"class_list":["post-255","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-wordpress-ecosysteem","tag-bedrock","tag-composer","tag-plugins","tag-roots"],"_links":{"self":[{"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/posts\/255","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/users\/22"}],"replies":[{"embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/comments?post=255"}],"version-history":[{"count":0,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/posts\/255\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/media\/254"}],"wp:attachment":[{"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/media?parent=255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/categories?post=255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/helloblog.io\/nl\/wp-json\/wp\/v2\/tags?post=255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}