L'azienda Cloudflare ha pubblicato il sistema di gestione dei contenuti EmDash. Proprio come WordPress, il nuovo sistema supporta le estensioni tramite plugin, consente di utilizzare modelli per costruire vari tipi di siti e offre un'interfaccia per la gestione, ma può anche operare su piattaforme di calcolo serverless e aumenta la sicurezza grazie all'uso del linguaggio TypeScript con tipizzazione statica e all'isolamento dei plugin in ambienti sandbox separati.
Il codice del progetto è scritto in TypeScript utilizzando il framework web Astro ed è distribuito sotto licenza MIT. Nell'annuncio si menziona che grazie all'impegno di agenti AI nello sviluppo, il prodotto è stato creato in due mesi. EmDash può funzionare sia nell'infrastruttura Cloudflare, sia essere avviato su proprie server attraverso Node.js. Come DBMS è possibile utilizzare SQLite, Turso/libSQL e PostgreSQL, mentre come sistema di archiviazione si possono utilizzare AWS S3, sistemi compatibili con S3 o un normale file system locale. Per la memorizzazione delle informazioni sulle sessioni si consiglia di utilizzare Redis o un file system.
Il nuovo sistema è stato sviluppato come tentativo di ricreare il progetto WordPress utilizzando strumenti moderni e risolvendo problemi esistenti. Tra i problemi di WordPress si evidenziano la necessità di gestire il codice in due linguaggi separati (PHP e JavaScript), l'uso di cache multilivello per ottenere prestazioni accettabili e un'architettura dei plugin non sicura, che causa il 96% di tutte le vulnerabilità sulla piattaforma.
Ogni plugin di WordPress ha accesso completo al DBMS e si integra con il codice PHP della piattaforma principale, pertanto qualsiasi vulnerabilità nel plugin compromette completamente l'intero sito. In EmDash, i plugin vengono eseguiti in Worker isolati separati, le cui possibilità sono limitate in modo dichiarativo dal manifesto. Ad esempio, se un plugin richiede le autorizzazioni read:content e email:send, avrà accesso solo alla lettura e alla possibilità di inviare email, nient'altro. Poiché i plugin non sono integrati nel codice del sistema di gestione dei contenuti, i loro autori sono liberi di scegliere qualsiasi licenza e di distribuire i plugin attraverso qualsiasi repository e cataloghi di applicazioni.
WordPress memorizza i contenuti in formato HTML con metadati incorporati come commenti interni. EmDash utilizza un formato strutturato Portable Text basato su JSON, separando il contenuto dalla formattazione. Questo approccio consente di visualizzare il contenuto in qualsiasi formato: come pagina web, app mobile, email o risposta API. È presente un server MCP integrato che consente di integrare la piattaforma con agenti AI, in grado di gestire contenuti e di essere utilizzato per creare temi e plugin.
La versione di base offre tre modelli iniziali: blog, marketing e portfolio. Nel primo caso, viene creato un blog standard con barra laterale, ricerca contestuale, categorie, tag, RSS, commenti e commutazione tra temi scuri e chiari. Il secondo modello consente di creare siti aziendali con listini, informazioni di contatto e descrizioni di prodotti e servizi. Il terzo modello è rivolto alla presentazione dei propri successi e progetti.
Funzionalità principali di EmDash:
- Contenuto: pubblicazione di materiali, suddivisione in pagine, definizione di tipi di contenuti personalizzati, modifica del testo con formattazione in modalità visiva tramite l'editor TipTap, gestione delle versioni dei contenuti, preparazione di bozze, pubblicazione pianificata, ricerca a testo completo e modifica in loco (inline).
- Pannello di amministrazione: builder visuale per schemi dati, libreria di contenuti multimediali, menu di navigazione, sistematizzazione delle informazioni, widget, possibilità di trasferire contenuti da WordPress.
- Autenticazione: per impostazione predefinita Passkey (WebAuthn) con OAuth, possibilità di accesso tramite link, controllo degli accessi basato su ruoli (amministratore, editore, autore, partecipante).
- Migrazione da WordPress: importazione di articoli, pagine e strutture tramite WXR, WordPress REST API o WordPress.com. Utilizzo dell'AI per il porting di plugin e temi.
Fonte: opennet.ru
