Outil CLI
emdash-cms/emdash avatar
emdash-cms/emdash

EmDash : un CMS TypeScript basé sur Astro et Cloudflare

EmDash est un CMS TypeScript full-stack basé sur Astro ; le successeur spirituel de WordPress.

12 331 étoiles1 151 forksTypeScriptMIT

En bref

De quoi s’agit-il ?
EmDash reconstruit le modèle de plugins de WordPress sur des fondations sans serveur, avec des Worker isolés en sandbox et du contenu structuré.
À qui s’adresse-t-il ?
EmDash est en avant-première bêta. Le README fournit des instructions d'installation, d'architecture et de développement, mais ne contient pas de calendrier de publication, d'audit de sécurité ni de politique de support en production.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement TypeScript, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Un CMS façon WordPress sur Astro et Cloudflare

EmDash est un CMS TypeScript full-stack construit sur Astro et Cloudflare. Les métadonnées du dépôt le décrivent comme le successeur de WordPress, et le README indique qu'il reprend les idées qui ont rendu WordPress dominant, notamment l'extensibilité, l'expérience d'administration et l'écosystème de plugins, pour les reconstruire sur des fondations sans serveur et type-safe. Les plugins s'exécutent dans des Worker isolés en sandbox, ce que le projet présente comme une solution au problème de sécurité fondamental de l'architecture de plugins de WordPress. Le projet est actuellement en avant-première bêta.

Installation et dépendance à Cloudflare

La commande de démarrage du README est `npm create emdash@latest`. EmDash dépend de Dynamic Workers pour exécuter des plugins sécurisés en sandbox, et Dynamic Workers ne sont actuellement disponibles que sur les comptes Cloudflare payants. Le README suggère une mise à niveau à partir de 5 dollars par mois ou de commenter le bloc `worker_loaders` du fichier `wrangler.jsonc` pour désactiver les plugins. EmDash fonctionne sur Cloudflare D1, R2 et Workers, ou sur n'importe quel serveur Node.js avec SQLite. Le README ne précise pas comment l'application des capacités fonctionne lorsque les plugins sont désactivés dans cette configuration.

Contenu structuré avec Portable Text

EmDash stocke le contenu au format Portable Text, un format JSON structuré, plutôt que sous forme de HTML sérialisé avec des métadonnées intégrées. Le README indique que cela découple le contenu de la présentation, permettant au même contenu d'être rendu comme page web, application mobile, e-mail ou réponse API sans analyser le HTML. Les types de contenu sont définis dans la base de données, pas dans le code, et les non-développeurs peuvent créer et modifier des collections via l'interface d'administration. Chaque collection correspond à une table SQL réelle avec des colonnes typées. Les développeurs peuvent générer des types TypeScript à partir du schéma en direct avec `npx emdash types`. L'édition de texte enrichi utilise TipTap, et les requêtes utilisent Astro Live Collections, comme dans l'exemple du README.

Plugins en sandbox avec manifestes de capacités

Les plugins sont écrits avec une API `definePlugin()` et déclarent des capacités telles que `read:content` et `email:send`. Le README inclut un exemple de plugin qui envoie un e-mail après la publication d'un contenu, en utilisant un hook de cycle de vie. Sur Cloudflare, les plugins s'exécutent dans des sandbox Worker isolés via Dynamic Worker Loaders, et chaque plugin possède un manifeste de capacités déclaré. Un plugin qui demande des capacités spécifiques peut faire exactement cela et rien d'autre. Le README ne précise pas comment l'application des capacités est implémentée en dehors de Cloudflare ; le tableau de portabilité liste l'exécution en processus comme mode sûr.

Administration, authentification et migration WordPress

L'interface d'administration comprend un constructeur de schéma visuel, une médiathèque avec téléversement par glisser-déposer via des URL signées, des menus de navigation, des taxonomies, des widgets et un assistant d'importation WordPress. L'authentification est d'abord basée sur les passkeys avec WebAuthn, avec des options de secours OAuth et magic link. Le contrôle d'accès basé sur les rôles couvre Administrateur, Éditeur, Auteur et Contributeur. Pour la migration, EmDash importe les articles, pages, médias et taxonomies depuis des exports WXR, l'API REST WordPress ou WordPress.com. Les compétences d'agent aident à porter les plugins et thèmes, mais le README ne décrit pas l'exhaustivité de ce processus de conversion.

Abstractions de plateforme portables

EmDash utilise des abstractions portables à chaque couche, avec Kysely pour SQL et l'API S3 pour le stockage. Le README liste SQLite, D1, Turso, PostgreSQL, R2, AWS S3 et les fichiers locaux comme backends pris en charge. Le tableau de portabilité montre les services Cloudflare à côté des alternatives : D1 avec SQLite, Turso ou PostgreSQL, R2 avec tout service compatible S3, KV avec Redis ou sessions basées sur fichiers, et Worker isolés avec mode sûr en processus. Le README indique qu'EmDash fonctionne le mieux sur Cloudflare, mais n'y est pas verrouillé. Aucune mesure de performance ou de latence n'est fournie.

Statut, modèles et développement

EmDash est livré avec trois modèles de démarrage : blog, marketing et portfolio, chacun avec mode sombre et clair. Le dépôt est un monorepo pnpm avec des paquets pour core, auth, blocks, cloudflare, plugins et un convertisseur de blocs WordPress. Pour le développement local, le README fournit des commandes pour cloner, installer, construire et exécuter une démo sur Node.js avec SQLite, sans compte Cloudflare. La section Statut indique avant-première bêta et accueille les contributions, avec des liens vers la documentation et CONTRIBUTING.md. Le projet est sous licence MIT, avec copyright Cloudflare Inc. 2026 ; la licence permet l'utilisation, la copie, la modification, la fusion, la publication, la distribution, la sous-licence et la vente de copies, et exclut toute garantie. Elle ne mentionne aucun engagement de support ou de maintenance.

Conclusion éditoriale

EmDash est en avant-première bêta. Le README fournit des instructions d'installation, d'architecture et de développement, mais ne contient pas de calendrier de publication, d'audit de sécurité ni de politique de support en production. Les utilisateurs potentiels doivent vérifier ces points séparément.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté