8 puntos por GN⁺ 29 일 전 | 6 comentarios | Compartir por WhatsApp
  • EmDash, desarrollado por Cloudflare, es un CMS de código abierto rediseñado con TypeScript y una arquitectura serverless para superar las limitaciones estructurales de WordPress
  • Ejecuta cada plugin en un entorno sandbox aislado, bloqueando de raíz las vulnerabilidades de plugins que representaban el 96% de los problemas de seguridad en sitios WordPress
  • Integra el estándar de pagos x402 para habilitar pagos bajo demanda (pay-per-use) por unidad de contenido, ofreciendo una estructura de monetización adaptada a la era del tráfico web impulsado por IA
  • Con una arquitectura serverless basada en Cloudflare Workers, escala automática y dinámicamente según la demanda, logrando al mismo tiempo reducción de costos y alto rendimiento
  • Integra funciones modernas como gestión de agentes de IA, autenticación con Passkey y estructura de temas con Astro, heredando el espíritu de WordPress pero reconstruido por completo

Resumen de EmDash

  • EmDash es un CMS de código abierto rediseñado para resolver las limitaciones estructurales de WordPress, adoptando una base completa en TypeScript y una arquitectura serverless
    • Es compatible con las funciones principales de WordPress, pero al no reutilizar su código existente puede distribuirse bajo licencia MIT
    • Usa Dynamic Worker de Cloudflare Workers para ejecutar cada plugin en un entorno aislado (isolate) independiente
    • Basado en el framework Astro, ofrece un rendimiento optimizado para sitios web centrados en contenido
  • EmDash está publicado en GitHub y puede desplegarse directamente en una cuenta de Cloudflare o en un servidor Node.js
  • Mejora de forma fundamental problemas que WordPress no ha resuelto, como la seguridad de plugins, la eliminación de dependencias de mercado, la gestión basada en IA y el soporte para pagos x402

Logros y límites de WordPress

  • WordPress impulsa más del 40% de Internet y es uno de los casos de éxito más representativos del código abierto al haber liderado la democratización de la publicación
  • Sin embargo, tras 24 años, el entorno de hosting y los paradigmas de desarrollo han cambiado de forma importante
    • Al principio era necesario alquilar un VPS, pero hoy es posible desplegar solo subiendo un bundle de JavaScript a una red distribuida globalmente
  • EmDash hereda el espíritu de WordPress, pero lo reconfigura para adaptarlo a la infraestructura web moderna y las exigencias actuales de seguridad

Solución al problema de seguridad de los plugins de WordPress

  • El 96% de los problemas de seguridad de los sitios WordPress provienen de los plugins
    • Los plugins son scripts PHP con acceso directo a la base de datos y al sistema de archivos
    • Al instalarse reciben prácticamente todos los permisos, sin aislamiento ni restricciones de privilegios
  • EmDash ejecuta cada plugin en un entorno sandbox basado en Dynamic Worker
    • Los plugins solicitan únicamente las capabilities necesarias mediante una declaración explícita (manifest)
    • Por ejemplo: read:content, email:send, entre otros permisos estrictamente necesarios
    • El acceso a red también se limita a los hosts declarados
  • Antes de instalar, se puede verificar con claridad qué permisos solicita cada plugin, lo que ofrece una estructura transparente de autorización similar a OAuth
  • Los administradores también pueden automatizar políticas de instalación según las solicitudes de permisos

Seguridad de plugins y eliminación de la dependencia del marketplace

  • WordPress.org mantiene un proceso de revisión manual por los problemas de seguridad de los plugins, con una cola de espera de más de 800
    • Las restricciones de la licencia GPL limitan la reutilización del código y su comercialización
  • EmDash elimina el lock-in de mercado mediante dos mejoras estructurales
    1. Mayor libertad de licenciamiento para plugins: como no comparte código con EmDash, los desarrolladores pueden elegir la licencia que prefieran
    2. Ejecución en sandbox de seguridad: el sitio puede confiar en el plugin sin necesidad de ver directamente su código
  • Como los plugins solo pueden realizar las capabilities declaradas, es posible evaluar con precisión el riesgo de seguridad
  • Esta estructura lleva a una menor dependencia de marketplaces centralizados
    • Con un modelo de seguridad confiable, desarrolladores y usuarios pueden expandir el ecosistema con mayor libertad

Estándar de pagos x402 integrado — monetización del acceso al contenido

  • EmDash ofrece soporte nativo para el estándar x402, permitiendo pagos bajo demanda mediante respuestas HTTP 402 Payment Required
    • Los usuarios pueden pagar por unidad de contenido (pay-per-use) sin necesidad de suscripción
    • Los operadores del sitio pueden monetizar solo configurando una dirección de wallet y un precio
  • Esto propone un nuevo modelo de negocio adaptado a la era del tráfico web impulsado por agentes de IA
  • Todos los sitios EmDash incluyen una estructura de ingresos integrada adecuada para la era de la IA

Escalabilidad serverless y reducción de costos

  • WordPress requiere aprovisionamiento de servidores, lo que genera costos por recursos ociosos
  • EmDash aprovecha una arquitectura de isolates de v8 basada en Cloudflare workerd
    • Crea instancias al instante cuando llega una solicitud y, si no hay tráfico, hace scale-to-zero automáticamente
    • Solo se cobra por tiempo de uso de CPU
  • A través de Cloudflare for Platforms, puede escalar automáticamente a millones de instancias
  • Su estructura de bajo costo y alto rendimiento es favorable para manejar tráfico a gran escala y ofrecer un tier gratuito

Estructura moderna de temas basada en Astro

  • Los temas de EmDash se organizan como un proyecto Astro e incluyen los siguientes elementos
    • Pages: rutas para renderizar contenido
    • Layouts: estructura HTML compartida
    • Components: elementos de UI reutilizables
    • Styles: configuración de CSS o Tailwind
    • Archivos Seed: definición de los tipos de contenido que generará el CMS
  • Astro es un framework popular incluido en los datos de entrenamiento de LLM, por lo que resulta amigable para desarrolladores
  • A diferencia de la estructura de temas de WordPress basada en functions.php, los temas de EmDash no pueden acceder a la base de datos, reforzando la seguridad

CMS nativo para IA — MCP, CLI y Agent Skills

  • EmDash fue diseñado como un CMS que los agentes de IA pueden administrar directamente
    • Permite automatizar tareas repetitivas como migraciones de contenido o conversiones de campos
  • Agent Skills

    • Las instancias de EmDash integran Agent Skills para proporcionar a la IA información sobre la estructura de plugins, hooks y métodos de portabilidad de temas
    • La IA puede comprender el codebase de EmDash y realizar personalización automática
  • EmDash CLI

    • Mediante la CLI se pueden ejecutar funciones de administración como búsqueda de contenido, carga de medios y generación de esquemas
    • Permite controlar tanto instancias locales como remotas
  • Servidor MCP integrado

    • Cada instancia ofrece su propio servidor Model Context Protocol
    • Es posible realizar de forma remota todas las acciones disponibles en la UI de administración

Autenticación con passkeys y gestión de roles

  • EmDash usa autenticación con Passkey de forma predeterminada
    • Evita filtraciones de contraseñas y ataques de fuerza bruta
  • También incluye soporte nativo para control de acceso basado en roles (RBAC)
    • Distingue permisos por rol, como administrador, editor, autor o colaborador
  • La autenticación puede ampliarse mediante plugins, con soporte para integración con metadatos de SSO e IdP

Migración de sitios WordPress

  • Los sitios WordPress existentes pueden migrarse mediante exportación de archivos WXR o con el plugin EmDash Exporter
    • El plugin Exporter crea un endpoint dedicado protegido con WordPress Application Password
    • Migra automáticamente contenido y medios a la biblioteca de EmDash
  • EmDash admite una estructura de contenido basada en esquemas
    • Convierte los Custom Post Type de WordPress en colecciones independientes de EmDash
  • Con Block Kit Agent Skill también es posible generar bloques personalizados con IA

Prueba y participación

  • EmDash está actualmente disponible como versión preliminar v0.1.0 y puede descargarse desde el repositorio de GitHub
  • Es posible probar directamente la UI de administración en EmDash Playground
  • Comando de instalación local: npm create emdash@latest
  • También puede desplegarse desde el dashboard de Cloudflare
  • Son bienvenidos los comentarios y aportes de la comunidad WordPress, plataformas de hosting y desarrolladores de plugins y temas

6 comentarios

 
xguru 28 일 전

Yo era de los que usaban WordPress para su blog personal, pero lo dejé por ese problema de seguridad y me pasé a un sitio estático.
Había dejado mi blog personal sin tocar durante un tiempo, y de verdad entró un spam rarísimo que convirtió el blog en un basurero de spam. Usaban un método extraño para hacer que Google indexara páginas que no existían en mi entorno local aprovechando las etiquetas. Todavía sigo sufriendo para borrarlo todo ;_;

 
lunamoth 27 일 전

Yo también recuerdo que me pareció raro cuando en las herramientas para webmasters aparecieron URLs extrañas.

"Un método raro para registrar en Google páginas que no existen en mi entorno local usando etiquetas" ¿cómo funciona exactamente eso?

¿Hay alguna forma de bloquearlo?

 
nemorize 25 일 전

También hay spam que registra como backlink en publicaciones de otros blogs URLs de resultados de búsqueda con frases spam;
Al final, sea lo que sea, hay que borrarlo manualmente...

 
xguru 27 일 전

Normalmente, la forma de entrar es aprovechando plugins/temas, etc., que tienen vulnerabilidades relacionadas con la subida de archivos.
Una vez que entran así, insertan contenido en tags/categorías y similares sin que el dueño original del blog se dé cuenta.
En la práctica, no se ve para nada en las páginas del blog, así que uno no lo nota, pero usan una técnica que hace que esa URL se renderice de modo que solo sea visible para el bot de Google. ( Ese es el caso de cosas como BabaYaga. )

Una vez que logran infiltrarse así, en realidad no encontré otra forma que no sea hacer que todo lo que entre a esas direcciones termine en 410 Gone. En el servidor, conviene dejar configurado que todas las direcciones innecesarias se marquen como 410, y pedir manualmente en Search Console que eliminen durante 6 meses ciertos patrones de entrada. Por ejemplo, hay que borrar todo lo que empiece con /tag.

Yo llevo un mes solicitando eliminaciones y todavía no han desaparecido todas. El indexado de Google debería funcionar bien, pero está tardando bastante.

 
lunamoth 26 일 전

Ah, ya veo. Gracias por avisarme. Tendré que estar pendiente de varias cosas.

 
GN⁺ 29 일 전
Opiniones de Hacker News
  • Llevo más de 10 años trabajando con WordPress, y creo que este proyecto resolvió perfectamente dos cosas: TypeScript y los plugins Worker
    Últimamente he pensado mucho en los problemas de seguridad de WP; un plugin malicioso puede acceder a la DB o a las variables de entorno, o provocar XSS. Pero un sistema de plugins bien diseñado puede mitigar eso
    Personalmente estoy desarrollando HotsauceCMS. Permite usar opcionalmente plugins Worker de NodeJS o Deno, de modo que los plugins propios se ejecuten rápido en proceso y los de terceros queden aislados en workers
    Solo tiene 4 dependencias y 0 dependencias transitivas, porque ya me cansé de las alertas de Dependabot y de los ataques a la cadena de suministro de npm
    Tiene una estructura schema-first basada en Drizzle, así que puedes controlar por completo la estructura de la DB y definir funciones como la carga de archivos mediante pistas en el esquema
    Es independiente de la DB, así que funciona con Postgres, MySQL, SQLite y cualquier base de datos que Drizzle soporte
    El frontend se puede elegir libremente; personalmente prefiero JSX sin React
    Agradezco cualquier feedback. Me interesa saber si se me está escapando algo y si la dirección es la correcta. También tengo curiosidad por ver cómo evoluciona EmDash

    • Me gustaría saber si puedes explicar por qué consideras que TypeScript es tan importante
    • Antes usaba mucho WordPress, y en ese tiempo su atractivo era la facilidad de instalación: subías todo por FTP y funcionaba de inmediato. No hacían falta CLI ni herramientas de build. Pero la seguridad siempre fue un problema y los hackeos no paraban
    • Comparto este enlace a una discusión anterior
  • Dicen que EmDash es el sucesor espiritual de WordPress, pero yo creo que la dirección en la que deberían ir los CMS es la contraria
    Más bien habría que simplificar y volver a sitios web basados en archivos estáticos. Son fáciles de cachear, rápidos y simples de administrar
    Claro, desde el punto de vista de Cloudflare parece que eligieron esta estructura para vender sus propios Workers. Todavía no tengo claro si realmente resolvieron el problema de seguridad de fondo

    • A mí también me gustan los sitios estáticos, pero los clientes a menudo quieren contenido dinámico. Al principio dicen que quieren algo simple, pero después piden formularios, inventario o reservas. Por eso entiendo una arquitectura centrada en plugins
    • A los clientes no desarrolladores les gusta poder editar cosas por sí mismos desde una UI. WordPress tiene una UI demasiado compleja y pesada, así que la mayoría termina volviendo a pedírselo a un desarrollador. Lo ideal sería una UI mínima que solo permita editar lo necesario
    • Si usas Astro, en esencia es un generador de sitios estáticos. Puedes agregar componentes de React cuando haga falta y también usar plugins de forma opcional
    • Si quieres alojar archivos estáticos en un lugar fácil de cachear, Cloudflare ya ofrece ese tipo de servicio
    • Astro genera HTML estático, así que por ese lado no parece haber problema
  • Creo que Cloudflare está abordando esto desde la dirección equivocada
    WordPress tuvo éxito por su facilidad de instalación y por el efecto de red. Más que la seguridad, el punto es que ya hay muchísimos desarrolladores familiarizados con WP
    Para que EmDash tenga éxito, tendría que ser más fácil, más rápido y más flexible que Wix o Squarespace. Si no, será difícil crear ese efecto de red

    • WordPress ya tiene mucha gente con experiencia, y EmDash apenas está empezando. Aun así, si crece, pienso apoyarlo
  • Como desarrollador de WordPress, mi mayor dolor siempre fue la arquitectura de plugins
    En WP los plugins van en una carpeta wp-content, igual que las imágenes, lo que vuelve CI/CD una pesadilla. En EmDash, como los plugins son módulos de TS, todo se ve mucho más limpio

    • WP no tiene un concepto de staging, así que para mover cambios a producción hay que rehacerlos manualmente
  • Me parece interesante el concepto del estándar de pagos x402 de Cloudflare
    La idea es que un agente envíe micropagos automáticamente para obtener acceso a contenido; da un poco de miedo, pero suena futurista
    En broma, si alguien hiciera un honeypot HTTP 402 que pida 10 centavos por visita, tal vez sería el regreso de la vieja idea de “1 píxel por 1 dólar”

    • Si engañas al agente para que siga pagando, podrías ganar dinero con redirecciones infinitas o contenido basura
    • Consulta esta documentación de HTTP 402
    • Se siente como si el hack de robo de centavos de la película Office Space se hubiera legalizado
  • El valor de WordPress no está en el código, sino en el ecosistema y la red de soporte
    La calidad del código no es gran cosa, pero todos los SaaS ofrecen conectores para WP
    Si EmDash quiere tener éxito, incluso alguien no desarrollador debería poder contratar fácilmente una personalización en Fiverr. Eso no es un problema técnico, sino un problema del mercado laboral

    • Cloudflare no hace bromas del Día de los Inocentes. 1.1.1.1 también se lanzó el 1 de abril y hoy es un servicio DNS importante
    • Confirmo que es un proyecto real
    • También vale la pena revisar la controversia de .com vs .org alrededor del “open source” de WordPress
    • Como alternativa antigua, también existe Textpattern
  • La idea de que sea un sucesor de WordPress hecho por Cloudflare es atractiva, pero el aislamiento de plugins basado en Dynamic Workers solo funciona en el runtime de Cloudflare
    En otros hosts no sería más que un CMS en TS, así que la dependencia arquitectónica es un problema

    • Al final, como OSS que depende de la infraestructura de Cloudflare, cuesta adoptarlo
    • Aun así, Workerd es open source, así que también se puede alojar por cuenta propia
    • Otros runtimes podrían copiar esta funcionalidad
    • Parece que Cloudflare sigue una estrategia de convertir OSS populares en reemplazos exclusivos para su propia infraestructura
  • Me pregunto por qué siguen haciendo proyectos de IA con JavaScript
    Hoy ya se pueden crear apps rápidamente también con lenguajes compilados como Go. Son más pequeños, más rápidos y más simples de desplegar
    JS es interpretado, así que es lento y complejo. Antes su ventaja era ejecutarse al instante, pero hoy compilar también es rápido

    • Decir que “JS no es un lenguaje de verdad” ya es exagerado. Sigue habiendo muchas razones para usar lenguajes interpretados
    • JS es el único que puede abarcar frontend web, backend, móvil y escritorio. Con herramientas como tRPC también se puede lograr seguridad de tipos de extremo a extremo
    • La mayoría de los desarrolladores ya conoce JS/TS y es la comunidad más grande. El ecosistema es tan enorme que no hay mucha razón para cambiar
    • Go es incómodo para procesar JSON o trabajar con templates. Su sistema de tipos es menos flexible, así que para desarrollo frontend tiene muchas limitaciones
    • Los LLM usan bien TS, y TS corrigió muchos de los defectos de JS. Entre runtimes rápidos y despliegue sencillo, sigue siendo una opción atractiva
  • Me parece interesante que EmDash no use código de WordPress y por eso se distribuya bajo licencia MIT
    Pero me hizo pensar en Malus, el reciente Cleanroom as a Service. La coincidencia en el momento es curiosa

    • En realidad, Malus es un proyecto satírico