AngristanLe blog tech d'Angristan

De WordPress à EmDash

Après 12 ans de bons et loyaux services sur ce site, WordPress a pris sa retraite.

Je ne maintiens plus activement ce site depuis 2018, ce qui n’est pas idéal pour un CMS qui demande un petit peu d’attention. De l’attention, je lui en donnais (un peu trop même) il y a une dizaine d’années, mais ce n’est plus trop mon centre d’intérêt aujourd’hui. Alors, quand on a accumulé quelques dizaines de plugins et qu’on sait que des CVE sortent régulièrement, on reste un peu nerveux !

Pour essayer de rester safe, j’ai activé les mises à jour automatiques et placé un WAF devant (Cloudflare), ce qui réduit fortement les risques. Mais on ne sait jamais ! Je faisais aussi tourner le conteneur dans mon cluster kube avec un maximum de restrictions et le moins de privilèges possible, avec le runtime gVisor et Falco qui surveillait en arrière-plan.

EmDash à la rescousse

EmDash est le remplaçant spirituel de WordPress. C’est un CMS qui reprend certains codes de WordPress, notamment l’admin et les différentes entités avec lesquelles on interagit (comme les menus, les widgets, etc.).

EmDash supporte l’import WordPress depuis l’API ou depuis un export, et va même télécharger toutes les images du site parent.

Le look and feel est très sympa, c’est un spèce d’hybride de WordPress et de Ghost, avec le design Cloudflare (via kumo). Y’a un peu de travail encore pour que ce soit bien poli, mais c’est pas loin !

EmDash admin
L'admin EmDash
L'édition d'un article
L'édition d'un article

La particularité d’EmDash, c’est qu’il est fait tourner sur la plateforme Cloudflare Workers. Ce n’est pas une obligation : je l’ai d’ailleurs testé sur mon cluster kube avec Node.js et PostgreSQL, et ça fonctionnait très bien (avec de très bonnes performances !).

L’avantage d’une plateforme serverless comme Workers, c’est que le runtime est limité (workerd), ce qui réduit fortement la surface d’attaque par rapport à un déploiement classique sur Linux, même conteneurisé.

Cloudflare Workers pour rester zen

L’autre avantage, et la raison pour laquelle j’ai décidé de partir sur Workers plutôt que de m’auto-héberger, c’est que je peux utiliser les primitives de Cloudflare : D1 pour la base de données SQLite, R2 pour stocker les images, Email Sending pour l’e-mail, KV pour le cache, Images pour optimiser les images, Turnstile pour éviter le spam, etc.

CleanShot 2026-07-24 at 11.04.34@2x.png
Mon déploiement pour ce blog

Et surtout, le site lui-même étant un Worker, il n’est invoqué que lors d’une visite ou d’une tâche planifiée. Le reste du temps, aucun compute n’est utilisé. Pour un site qui n’a presque plus de trafic 😇, c’est pratique et économe (dans tous les sens du terme). Moins d’infra à gérer, c’est top. Surtout que WordPress n’est vraiment pas fait pour l’ère du conteneur, donc ce n’était pas le plus agréable.

Pour les sites à fort trafic, les Workers scalent évidemment très bien, et il existe des fonctionnalités sympas comme la réplication globale pour les requêtes de lecture et le Smart Placement, qui place le Worker plus près de la base de données que de l’utilisateur (ce qui a plus d’impact sur la latence que l’inverse).

Plus de plugins pour notre ère

EmDash a une approche différente de WordPress, où les plugins peuvent finalement faire ce qu’ils veulent sans limite, ce qui peut être dangereux en cas de faille ou de plugin malveillant. Les plugins EmDash ont des capabilités bien définies et tournent dans des Dynamic Workers séparés.

WordPress vs EmDash avec les dynamic workers
WordPress vs EmDash avec les dynamic workers

Au final, (je suis limite déçu) je n’ai pas vraiment eu besoin de plugins, puisque tout ce dont j’ai besoin (SEO, cache, images) est déjà là ou facile à coder dans le code Astro du site. Pour ce qui touche davantage au cœur d’EmDash, j’utilise des patchs Bun. Au final c’était principalement pour matcher des fonctionnalités que j’avais autour des commentaires et des medias, du tuning de cache etc.

L’autre partie du boulot c’était de mapper au mieux les posts wordpress au format Emdash pour préserver le contenu.

Notre ère a changé, coder pour son usage spécifique est devenu beaucoup moins coûteux, donc plus vraiment besoin de plugin tierce !

Un weekend suffit à refaire un site 🤓.

Le même look

J’ai porté mon thème WordPress custom, à l’époque adapté de Nisarg, quasiment tel quel. Le thème par défaut d’EmDash est beaucoup plus moderne, mais je ne voulais pas dénaturer le travail que le moi d’il y a dix ans avait fait, même si ce n’est pas le plus sexy. Le but, c’est de mettre le site proprement en veille tout en lui laissant son look !


Voilà pour ce petit message de passage. À bientôt sur stanislas.blog !

Aucun commentaire

Laisser un commentaire