Cloudflare heeft een contentbeheersysteem EmDash gepubliceerd. Net als WordPress ondersteunt het nieuwe systeem extensies via plugins, stelt gebruikers in staat om sjablonen te gebruiken voor het bouwen van verschillende soorten websites en biedt een interface voor beheer. Bovendien kan het draaien op serverless computing platforms en verbetert het de veiligheid door het gebruik van TypeScript met statische types en isolatie van plugins in aparte sandbox-omgevingen.
De projectcode is geschreven in TypeScript met behulp van het webframework Astro en wordt verspreid onder de MIT-licentie. In de aankondiging wordt vermeld dat het product, dankzij de betrokkenheid van AI-agenten bij de ontwikkeling, in slechts twee maanden is gecreëerd. EmDash kan zowel binnen de Cloudflare-infrastructuur functioneren als op eigen servers met Node.js. Als database kan SQLite, Turso/libSQL of PostgreSQL worden gebruikt, en als opslag kan AWS S3, S3-compatibele systemen of een gewone lokale bestandssysteem dienen. Voor het opslaan van informatie over sessies wordt het gebruik van Redis of een bestandssysteem aanbevolen.
Het nieuwe systeem is ontwikkeld als een poging om het WordPress-project opnieuw vorm te geven met moderne tools en om bestaande problemen op te lossen. Tot de problemen met WordPress behoort de noodzaak om de code in twee talen (PHP en JavaScript) gescheiden te beheren, het gebruik van meervoudige caches om aanvaardbare prestaties te bereiken, en de onveilige architectuur van plugins, die verantwoordelijk is voor 96% van alle kwetsbaarheden op het platform.
Elke WordPress-plugin heeft volledige toegang tot de database en integreert met de PHP-code van het hoofdsysteem, waardoor elke kwetsbaarheid in een plugin het hele systeem kan compromitteren. In EmDash worden plugins uitgevoerd in aparte geïsoleerde Workers, waarvan de mogelijkheden declaratief worden beperkt door een manifest. Als een plugin bijvoorbeeld de bevoegdheden read:content en email:send aanvraagt, krijgt deze alleen toegang tot leesrechten en de mogelijkheid om e-mails te versturen, niet meer. Aangezien plugins niet in de code van het contentbeheersysteem worden ingebed, zijn hun auteurs vrij om elke licentie te kiezen en plugins via elke repository en applicatiedirectory te verspreiden.
WordPress slaat content op in HTML-formaat met metadata embedded in de vorm van interne opmerkingen. EmDash gebruikt een op JSON gebaseerde gestructureerde Portable Text-indeling die inhoud scheidt van opmaak. Deze aanpak maakt het mogelijk om inhoud weer te geven in verschillende weergaven - als webpagina, mobiele app, e-mail of API-respons. Er is een ingebouwde MCP-server die het mogelijk maakt om het platform te integreren met AI-agents, die de inhoud kunnen beheren en ook gebruikt kunnen worden voor het creëren van thema's en plugins.
De basislevering biedt drie starttemplates: blog, marketing en portfolio. In het eerste geval wordt een standaardblog met een zijbalk, uitgebreide zoekfunctie, categorieën, tags, RSS, opmerkingen en de mogelijkheid om tussen donkere en lichte thema's te schakelen gemaakt. De tweede template stelt bedrijven in staat om websites met prijsinformatie, contactgegevens en beschrijvingen van producten en diensten te creëren. De derde template is gericht op het presenteren van behaalde resultaten en projectpresentaties.
Belangrijkste functies van EmDash:
- Inhoud: publicatie van materialen, onderverdeling in pagina's, definiëren van eigen inhoudstypen, tekstbewerking met opmaak in de visuele modus met behulp van de TipTap-editor, versiebeheer voor inhoud, opstellen van concepten, geplande plaatsing, full-text zoeken en inline bewerken.
- Adminpaneel: visuele datamappers, multimedia-bibliotheek, navigatiemenu's, informatielogistiek, widgets, mogelijkheid om content van WordPress over te zetten.
- Authenticatie: standaard Passkey (WebAuthn) met OAuth, inloggen via link, rolgebaseerde toegang (beheerder, redacteur, auteur, deelnemer).
- Migratie van WordPress: importeren van berichten, pagina's en structuren via WXR, WordPress REST API of WordPress.com. Gebruik van AI voor het porteren van plugins en thema's.
Bron: opennet.ru
