﻿﻿{"id":2655,"date":"2026-04-02T02:10:32","date_gmt":"2026-04-02T00:10:32","guid":{"rendered":"https:\/\/elearningsamba.com\/index.php\/emdash-cloudflare-refait-wordpress-from-scratch\/"},"modified":"2026-04-02T02:10:32","modified_gmt":"2026-04-02T00:10:32","slug":"emdash-cloudflare-refait-wordpress-from-scratch","status":"publish","type":"page","link":"https:\/\/elearningsamba.com\/index.php\/emdash-cloudflare-refait-wordpress-from-scratch\/","title":{"rendered":"EmDash &#8211; Cloudflare refait WordPress from scratch"},"content":{"rendered":"<p>Cloudflare qui sort un successeur open source \u00e0 WordPress le 1er avril, je vous avoue que \u00e7a sentait le poisson d&#8217;avril \u00e0 plein nez. Sauf que non !!<br \/>\n<a href=\"https:\/\/github.com\/emdash-cms\/emdash\">EmDash<\/a><br \/>\nest bien r\u00e9el, son code est sur GitHub sous licence MIT, et \u00e7a s&#8217;installe en une commande toute simple !<\/p>\n<p>L&#8217;id\u00e9e de base pour Cloudflare, c&#8217;est de dire que WordPress a plus de 20 ans et bien qu&#8217;il alimente 40% du web, son architecture de plugins est un emmental (Le gruy\u00e8re n&#8217;a pas de trou les amis ^^). En effet, 96% des failles de s\u00e9curit\u00e9 viennent des extensions et pas du noyau PHP ni des th\u00e8mes et en 2025, on a quand m\u00eame explos\u00e9 le record de failles dans l&#8217;\u00e9cosyst\u00e8me WP.<\/p>\n<p>Du coup Cloudflare, grand prince (Matthew ^^ Ok, je sors&#8230;) a tout repris de z\u00e9ro en TypeScript et avec l&#8217;aide de nombreux agents IA. Et de ce que j&#8217;ai compris, le gros morceau de ce projet, visiblement, c&#8217;est l&#8217;isolation des plugins.<\/p>\n<p>\n<img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/emdash-cloudflare-wordpress-open-source\/emdash-cloudflare-wordpress-open-source-2.webp\" alt=\"\" loading=\"lazy\">\n<\/p>\n<p>Car sur WordPress, une extension a acc\u00e8s \u00e0 toute la base de donn\u00e9es et au syst\u00e8me de fichiers (d&#8217;o\u00f9<br \/>\n<a href=\"https:\/\/korben.info\/securiser-wordpress-les-plugins.html\">l&#8217;importance de bien les choisir<\/a><br \/>\n). Alors que sur EmDash, chaque plugin tourne dans son propre isolat avec un mod\u00e8le de capacit\u00e9s d\u00e9claratives. En gros, le plugin annonce dans un fichier manifeste JSON ce dont il a besoin, genre <code>read:content<\/code> ou <code>email:send<\/code>, et il ne peut rien faire d&#8217;autre. S&#8217;il veut acc\u00e9der au r\u00e9seau, il doit m\u00eame pr\u00e9ciser le hostname exact. Comme \u00e7a fini les extensions qui aspirent vos donn\u00e9es en douce. Par contre, \u00e7a veut aussi dire que vos plugins WordPress actuels ne marcheront pas tels quels&#8230;<\/p>\n<p>C\u00f4t\u00e9 stack, c&#8217;est comme je disais du TypeScript de bout en bout avec Astro 6.0 en frontend (pour les th\u00e8mes) et Node.js derri\u00e8re. L&#8217;auth passe \u00e9galement par des passkeys par d\u00e9faut (enfin, plus de mots de passe !) et y&#8217;a m\u00eame un syst\u00e8me de paiement natif via le standard ouvert x402 pour mon\u00e9tiser du contenu.<\/p>\n<p>\n<img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/emdash-cloudflare-wordpress-open-source\/emdash-cloudflare-wordpress-open-source-3.webp\" alt=\"\" loading=\"lazy\">\n<\/p>\n<p>Et le truc qui va vous rassurer si vous \u00eates allergique au cloud : <strong>c&#8217;est auto-h\u00e9bergeable<\/strong>. En fait, le CMS peut tourner sur Cloudflare Workers, mais aussi sur n&#8217;importe quel serveur Node.js avec SQLite. Les abstractions sont portables, avec Kysely pour le SQL et l&#8217;API S3 pour le stockage. Du coup vous pouvez brancher PostgreSQL, Turso, AWS S3, ou tout b\u00eatement des fichiers en local. Le bonheur !<\/p>\n<p>Le truc cool pour les bidouilleurs, c&#8217;est que chaque instance expose un serveur MCP (Model Context Protocol) et une CLI pour piloter le CMS par script. Y&#8217;a aussi des Agent Skills pour que les agents IA puissent cr\u00e9er du contenu, g\u00e9rer les m\u00e9dias et modifier le sch\u00e9ma sans toucher au dashboard. C&#8217;est clairement pens\u00e9 pour l&#8217;\u00e8re des agents IA.<\/p>\n<p>Et pour ceux qui veulent migrer depuis leur WordPress, c&#8217;est pr\u00e9vu pour vous faciliter la t\u00e2che puisqu&#8217;il y a le support d&#8217;export WXR classique ou via un plugin d\u00e9di\u00e9 qui cr\u00e9e un endpoint s\u00e9curis\u00e9 prot\u00e9g\u00e9 par mot de passe. Que ce soient les m\u00e9dias, les custom post types&#8230;etc tout est transf\u00e9rable en quelques minutes. Par contre, attention les shortcodes et les blocs Gutenberg custom ne passeront pas tels quel, faudra faire des ajustements.<\/p>\n<p>\n<img decoding=\"async\" src=\"https:\/\/korben.info\/cdn-cgi\/image\/width=1200,fit=scale-down,quality=90,f=avif\/emdash-cloudflare-wordpress-open-source\/emdash-cloudflare-wordpress-open-source-1.png\" alt=\"\" loading=\"lazy\">\n<\/p>\n<p>Car oui c&#8217;est une v0.1.0 preview, donc on peut le dire, une bonne grosse beta qui bave mais je trouve \u00e7a super cool car le<br \/>\n<a href=\"https:\/\/korben.info\/wp-engine-vs-wordpress-guerre-declaree.html\">drama WP Engine vs WordPress<\/a><br \/>\na montr\u00e9 que l&#8217;\u00e9cosyst\u00e8me \u00e9tait fragile, et c&#8217;est bien de r\u00e9introduire un peu de diversit\u00e9. Par contre, remplacer un CMS qui fait tourner 40% du web, c&#8217;est hyper ambitieux et \u00e7a se fera pas en un trimestre. Car la vraie force de WordPress, c&#8217;est sa communaut\u00e9, ses milliers de plugins et de th\u00e8mes, et \u00e7a pour le moment, y&#8217;a pas grand chose sur EmDash.<\/p>\n<p>M&#8217;enfin, si vous voulez tester c&#8217;est <code>npm create emdash@latest<\/code> et c&#8217;est parti mon kiki. Ah et y&#8217;a aussi un playground sur<br \/>\n<a href=\"https:\/\/emdashcms.com\/playground\">emdashcms.com<\/a><br \/>\npour vous faire une id\u00e9e sans rien installer. Pour ma part, je testerai \u00e7a d\u00e8s que j&#8217;aurais 5 min, mais pour le moment, je ne me vois pas quitter WordPress car EmDash n&#8217;a pas (encore) ce petit truc en plus qui me ferait changer&#8230; On verra d&#8217;ici quelques temps.<\/p>\n<p>\n<a href=\"https:\/\/blog.cloudflare.com\/emdash-wordpress\/\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cloudflare qui sort un successeur open source \u00e0 WordPress le 1er avril, je vous avoue que \u00e7a sentait le poisson d&#8217;avril \u00e0 plein nez. Sauf que non !! EmDash est bien r\u00e9el, son code est sur GitHub sous licence MIT, et \u00e7a s&#8217;installe en une commande toute simple ! L&#8217;id\u00e9e de base pour Cloudflare, c&#8217;est de dire que WordPress a plus de 20 ans et bien qu&#8217;il alimente 40% du web, son architecture de plugins est un emmental (Le gruy\u00e8re n&#8217;a pas de trou les amis ^^). En effet, 96% des failles de s\u00e9curit\u00e9 viennent des extensions et pas du noyau PHP ni des th\u00e8mes et en 2025, on a quand m\u00eame explos\u00e9 le record de failles dans l&#8217;\u00e9cosyst\u00e8me WP. Du coup Cloudflare, grand prince (Matthew ^^ Ok, je sors&#8230;) a tout repris de z\u00e9ro en TypeScript et avec l&#8217;aide de nombreux agents IA. Et de ce que j&#8217;ai compris, le gros morceau de ce projet, visiblement, c&#8217;est l&#8217;isolation des plugins. Car sur WordPress, une extension a acc\u00e8s \u00e0 toute la base de donn\u00e9es et au syst\u00e8me de fichiers (d&#8217;o\u00f9 l&#8217;importance de bien les choisir ). Alors que sur EmDash, chaque plugin tourne dans son propre isolat avec un mod\u00e8le de capacit\u00e9s d\u00e9claratives. En gros, le plugin annonce dans un fichier manifeste JSON ce dont il a besoin, genre read:content ou email:send, et il ne peut rien faire d&#8217;autre. S&#8217;il veut acc\u00e9der au r\u00e9seau, il doit m\u00eame pr\u00e9ciser le hostname exact. Comme \u00e7a fini les extensions qui aspirent vos donn\u00e9es en douce. Par contre, \u00e7a veut aussi dire que vos plugins WordPress actuels ne marcheront pas tels quels&#8230; C\u00f4t\u00e9 stack, c&#8217;est comme je disais du TypeScript de bout en bout avec Astro 6.0 en frontend (pour les th\u00e8mes) et Node.js derri\u00e8re. L&#8217;auth passe \u00e9galement par des passkeys par d\u00e9faut (enfin, plus de mots de passe !) et y&#8217;a m\u00eame un syst\u00e8me de paiement natif via le standard ouvert x402 pour mon\u00e9tiser du contenu. Et le truc qui va vous rassurer si vous \u00eates allergique au cloud : c&#8217;est auto-h\u00e9bergeable. En fait, le CMS peut tourner sur Cloudflare Workers, mais aussi sur n&#8217;importe quel serveur Node.js avec SQLite. Les abstractions sont portables, avec Kysely pour le SQL et l&#8217;API S3 pour le stockage. Du coup vous pouvez brancher PostgreSQL, Turso, AWS S3, ou tout b\u00eatement des fichiers en local. Le bonheur ! Le truc cool pour les bidouilleurs, c&#8217;est que chaque instance expose un serveur MCP (Model Context Protocol) et une CLI pour piloter le CMS par script. Y&#8217;a aussi des Agent Skills pour que les agents IA puissent cr\u00e9er du contenu, g\u00e9rer les m\u00e9dias et modifier le sch\u00e9ma sans toucher au dashboard. C&#8217;est clairement pens\u00e9 pour l&#8217;\u00e8re des agents IA. Et pour ceux qui veulent migrer depuis leur WordPress, c&#8217;est pr\u00e9vu pour vous faciliter la t\u00e2che puisqu&#8217;il y a le support d&#8217;export WXR classique ou via un plugin d\u00e9di\u00e9 qui cr\u00e9e un endpoint s\u00e9curis\u00e9 prot\u00e9g\u00e9 par mot de passe. Que ce soient les m\u00e9dias, les custom post types&#8230;etc tout est transf\u00e9rable en quelques minutes. Par contre, attention les shortcodes et les blocs Gutenberg custom ne passeront pas tels quel, faudra faire des ajustements. Car oui c&#8217;est une v0.1.0 preview, donc on peut le dire, une bonne grosse beta qui bave mais je trouve \u00e7a super cool car le drama WP Engine vs WordPress a montr\u00e9 que l&#8217;\u00e9cosyst\u00e8me \u00e9tait fragile, et c&#8217;est bien de r\u00e9introduire un peu de diversit\u00e9. Par contre, remplacer un CMS qui fait tourner 40% du web, c&#8217;est hyper ambitieux et \u00e7a se fera pas en un trimestre. Car la vraie force de WordPress, c&#8217;est sa communaut\u00e9, ses milliers de plugins et de th\u00e8mes, et \u00e7a pour le moment, y&#8217;a pas grand chose sur EmDash. M&#8217;enfin, si vous voulez tester c&#8217;est npm create emdash@latest et c&#8217;est parti mon kiki. Ah et y&#8217;a aussi un playground sur emdashcms.com pour vous faire une id\u00e9e sans rien installer. Pour ma part, je testerai \u00e7a d\u00e8s que j&#8217;aurais 5 min, mais pour le moment, je ne me vois pas quitter WordPress car EmDash n&#8217;a pas (encore) ce petit truc en plus qui me ferait changer&#8230; On verra d&#8217;ici quelques temps. Source<\/p>\n","protected":false},"author":1,"featured_media":2656,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"give_campaign_id":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_kadence_starter_templates_imported_post":false,"footnotes":""},"class_list":["post-2655","page","type-page","status-publish","has-post-thumbnail","hentry"],"campaignId":"","_links":{"self":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2655","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/comments?post=2655"}],"version-history":[{"count":0,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/pages\/2655\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media\/2656"}],"wp:attachment":[{"href":"https:\/\/elearningsamba.com\/index.php\/wp-json\/wp\/v2\/media?parent=2655"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}