La société Cloudflare a publié un système de gestion de contenu appelé EmDash. Comme WordPress, ce nouveau système prend en charge l'extension via des plugins, permet d'utiliser des modèles pour créer différents types de sites et fournit une interface d'administration. Cependant, il peut fonctionner sur des plateformes de calcul sans serveur et améliore la sécurité grâce à l'utilisation de TypeScript avec des types statiques et à l'isolement des plugins dans des environnements sandbox distincts.
Le code du projet est écrit en TypeScript en utilisant le framework web Astro et est distribué sous la licence MIT. L'annonce mentionne que grâce à l'implication d'agents IA dans le développement, le produit a été créé en deux mois. EmDash peut fonctionner aussi bien dans l'infrastructure Cloudflare qu'être déployé sur des serveurs propres. serveurs à l'aide de Node.js. Comme base de données, SQLite, Turso/libSQL et PostgreSQL peuvent être utilisés, tandis que les options de stockage incluent AWS S3, des systèmes compatibles S3 ou simplement un système de fichiers local. Pour stocker des informations sur les sessions, il est recommandé d'utiliser Redis ou un système de fichiers.
Ce nouveau système a été conçu comme une tentative de recréer le projet WordPress en utilisant des outils modernes et en résolvant les problèmes existants. Parmi les problèmes de WordPress, on note la nécessité d'une gestion distincte du code dans deux langages (PHP et JavaScript), l'application de caches multi-niveaux pour atteindre des performances acceptables et l'architecture de plugins peu sécurisée, qui est la cause de 96% de toutes les vulnérabilités de la plateforme.
Chaque plugin de WordPress a un accès complet à la base de données et s'intègre au code PHP de la plateforme principale, donc toute vulnérabilité dans un plugin compromet entièrement le site. Dans EmDash, les plugins s'exécutent dans des Worker isolés, dont les capacités sont déclarativement limitées par un manifeste. Par exemple, si un plugin demande les autorisations read:content et email:send, il n'aura accès qu'à la lecture et à l'envoi d'e-mails, pas plus. Comme les plugins ne s'intègrent pas dans le code du système de gestion de contenu, leurs auteurs sont libres de choisir n'importe quelle licence et de distribuer les plugins via n'importe quel répertoire et catalogue d'applications.
WordPress stocke le contenu au format HTML avec des métadonnées intégrées sous forme de commentaires internes. EmDash utilise un format structuré basé sur JSON, Portable Text, qui sépare le contenu de la mise en forme. Cette approche permet de rendre le contenu dans diverses affichages – sous forme de page web, d'application mobile, d'email ou de réponse API. Un serveur MCP intégré permet d'intégrer la plateforme avec des agents AI, capables de gérer le contenu, ainsi que de servir à la création de thèmes et de plugins.
L'offre de base propose trois modèles initiaux : blog, marketing et portfolio. Dans le premier cas, un blog standard est créé avec une barre latérale, une recherche contextuelle, des catégories, des étiquettes, un RSS, des commentaires et la possibilité de basculer entre les thèmes sombres et clairs. Le deuxième modèle permet de créer des sites d'entreprise avec des prix, des informations de contact et la description de produits et services. Le troisième modèle est axé sur la présentation de ses réalisations et de projets.
Fonctionnalités principales d'EmDash :
- Contenu : publication de contenus, division en pages, définition de types de contenu personnalisés, édition de texte avec mise en forme en mode visuel à l'aide de l'éditeur TipTap, gestion des versions de contenu, préparation de brouillons, publication programmée, recherche en texte intégral et édition en ligne.
- Panneau d'administration : constructeur visuel de schémas de données, bibliothèque de médias, menus de navigation, organisation de l'information, widgets, possibilité de transférer du contenu depuis WordPress.
- Authentification : par défaut, Passkey (WebAuthn) avec OAuth, possibilité de connexion par lien, séparation des accès basée sur des rôles (administrateur, éditeur, auteur, membre).
- Migration depuis WordPress : importation de publications, de pages, de la structure via WXR, l'API REST de WordPress ou WordPress.com. Utilisation de l'AI pour porter des plugins et des thèmes.
Source : opennet.ru
