El nuevo CMS de Cloudflare ya se puede probar. Si has leído el análisis que publiqué sobre EmDash y te pica la curiosidad, aquí tienes cómo instalarlo, configurarlo y dar tus primeros pasos, pero te aviso que estamos hablando de una versión beta orientada a desarrolladores, así que no esperes la experiencia de los 5 minutos de WordPress. Ahora bien, tampoco es tan complicado como parece.
Qué necesitas antes de empezar
EmDash se puede probar de tres formas distintas, y cada una tiene sus requisitos.
- Si solo quieres ver cómo es el panel de administración no necesitas nada, el playground de EmDash (sí, como el de WordPress) funciona en el navegador sin instalar nada. Es la forma más rápida de echarle un ojo y ver si te convence la interfaz.
- Si quieres instalarlo en tu ordenador para probarlo de verdad necesitas
Node.js18 o superior y un gestor de paquetes (npmviene incluido conNode.js, así que vale). El almacenamiento local usaSQLite, que no requiere configuración adicional. Funciona en MacOS, Linux y Windows. - Si quieres desplegarlo en Cloudflare (que es donde EmDash funciona con todas sus prestaciones), necesitas una cuenta de Cloudflare. La cuenta gratuita sirve para lo básico pero los Dynamic Workers que permiten el sandbox de plugins requieren un plan de pago que empieza en 5 dólares al mes (unos 4,50 euros).
Opción 1: Playground (sin instalar nada)
La forma más rápida de ver EmDash es el Playground. Abre emdashcms.com en tu navegador y ya tienes acceso al panel de administración con datos de ejemplo.
Desde ahí puedes explorar las secciones principales:
- Dashboard: La vista general, con accesos directos y un resumen de la actividad reciente. Si has usado WordPress alguna vez, la distribución te resultará familiar: menú lateral a la izquierda, contenido principal a la derecha.
- Content: Es el equivalente a la navegación por contenidos de WordPress (entradas, páginas, tipos personalizados, medios). En EmDash cada tipo de contenido tiene su propia tabla en la base de datos, a diferencia de WordPress donde todo se mete en
wp_posts. - Manage: Esto es un poco mejunje, porque se mezclan taxonomías con elementos de diseño. Una vez en cada sección se entiende pero a priori es un poco raro.
- Admin: Aquí tienes la sección de ajustes, pero también un poco extraña, porque tiene el instalador de plugins y usuarios, más las configuraciones, pero desde aquí también se crean los tipos de contenido. Se nota de nuevo que es algo que han hecho un poco a la carrera.
El playground tiene limitaciones, como que no puedes desplegar el sitio resultante, ni subir medios, ni instalar plugins, pero es perfecto para hacerte una idea de la interfaz y decidir si quieres ir más allá.
Opción 2: EmDash en local
Aquí es donde empezamos con la terminal. No te asustes, son tres pasos.
Paso 1: Crear el proyecto
Abre la terminal y ejecuta:
npm create emdash@latest
El asistente te va a preguntar varias cosas:
- Nombre del proyecto: El nombre de la carpeta donde se creará todo. Por ejemplo,
mi-sitio-emdash. - Despliegue: Si vas a hacer
deploycon Node.js o mediante Workers de Cloudflare (de pago). Te recomiendo Node.js. - Plantilla: EmDash viene con varias plantillas de inicio:
- Blog: un blog tipo con entradas, páginas y autores
- Starter: web básica con entradas y páginas
- Marketing: sitio de marketing con páginas landing y CTAs
- Portfolio: sitio con tipos de contenido para proyectos y casos de estudio
- Blank: web mínima sin contenido ni estilos
Elige la que más se parezca a lo que quieres hacer. Para este tutorial, vamos con Blog.
- Gestor de paquetes: Elige entre pnpm, npm (el que te recomiendo y por defecto), yarn o bun
- Instalación de dependencias: si quieres que añada recursos que necesita para funcionar (un sí rotundo)
Paso 2: Acceder al proyecto e instalar dependencias
cd mi-sitio-emdash npm install
Esto descarga todas las dependencias del proyecto. Puede tardar un par de minutos dependiendo de tu conexión, y podría dar errores o advertencias, incluso de seguridad, recuerda que todo esto está en una fase beta que te cagas del copón.
Paso 3: Arrancar el servidor de desarrollo
npm run dev
Si todo ha ido bien, verás un mensaje indicando que el servidor está corriendo, normalmente en http://localhost:4321.
Abre esa dirección en tu navegador. Deberías ver el sitio con la plantilla que elegiste, ya funcionando y con datos de ejemplo precargados.
Acceder al panel de administración
El panel de administración está en http://localhost:4321/admin. La primera vez que accedas te pedirá que crees una cuenta de administrador.
EmDash usa passkeys por defecto. Eso significa que en lugar de crear un usuario y contraseña al estilo WordPress, te va a pedir que registres una passkey usando el sistema de tu navegador o dispositivo (Touch ID, Face ID, Windows Hello, llave de seguridad física o el PIN de tu sistema). Si tu navegador admite passkeys (Chrome, Safari, Firefox y Edge lo hacen desde hace tiempo), el proceso es inmediato.
Una vez creada la cuenta, ya estás dentro del panel.
Opción 3: Desplegar EmDash en Cloudflare
Si quieres probar EmDash con todas las funciones, incluido el sandboxing de plugins con Dynamic Workers, necesitas desplegarlo en Cloudflare.
La forma más rápida es usar el botón de despliegue con un clic que hay en el repositorio de GitHub. Te lleva al escritorio de Cloudflare donde se configura automáticamente una base de datos D1, un bucket R2 para los medios y un Worker para ejecutar la aplicación.
El proceso automatizado hace lo siguiente:
- Crea un fork del template en tu cuenta de GitHub.
- Configura los servicios de Cloudflare necesarios (D1, R2, Workers).
- Despliega la aplicación.
- Te da una URL del tipo
tu-proyecto.workers.devdonde tu sitio EmDash ya está funcionando.

Si prefieres hacerlo manualmente desde el terminal, necesitas instalar Wrangler (la CLI de Cloudflare) y seguir estos pasos:
npm create emdash@latest -- --template blog-cloudflare cd mi-sitio-emdash npm install npx wrangler login npx wrangler d1 create emdash-db npx wrangler r2 bucket create emdash-media npm run deploy
Después de wrangler d1 create y wrangler r2 bucket create, el sistema te dará los identificadores que necesitas añadir en el archivo wrangler.jsonc del proyecto. La plantilla ya viene con la estructura preparada, solo tienes que reemplazar los valores de ejemplo por los tuyos.
Ojo con los costes: La cuenta gratuita de Cloudflare incluye Workers y D1 con límites generosos para sitios pequeños. Pero si quieres habilitar los Dynamic Workers (necesarios para el sandboxing de plugins) tienes que pasar al plan Workers Paid, que empieza en 5 dólares al mes. Sin Dynamic Workers EmDash funciona pero los plugins se ejecutan sin aislamiento, como en cualquier aplicación Node.js normal.
Primeros pasos en el panel de administración
Tanto si has instalado en local como en Cloudflare, el panel de administración funciona igual. Vamos a repasar lo básico.
Crear un content type
Estos son los tipos de contenido de EmDash, no se han roto la cabeza ni en el nombre. Si vienes de WordPress, piensa en ellos como los tipos de entrada personalizados (Custom Post Types), pero más potentes porque cada tipo de contenido tiene su propia tabla en la base de datos con campos adaptados.
Si usaste una plantilla al instalar, ya tendrás tipos de contenido creados (Posts, Pages y probablemente Categories o Tags). Para crear una nueva, ve a la sección Content Types del menú lateral y pulsa en New Content Type.
Define el nombre (por ejemplo, «Proyectos»), los campos que necesitas (título, descripción, imagen, categoría, fecha…) y el tipo de cada campo. EmDash admite bastantes campos por defecto, así que no te faltará prácticamente de nada a lo que te hayas acostumbrado. Cada campo tiene sus opciones de validación, como si es obligatorio, longitud mínima y máxima, valor por defecto.
Cuando guardas el tipo de contenido EmDash crea automáticamente la tabla en la base de datos y genera los endpoints de la API REST. No hace falta escribir código para nada de esto.
Crear y editar contenido
Entra en cualquier tipo de contenido y pulsa Add New. El editor se adapta a los campos que definiste para ese tipo de contenido.
Cuando creas un nuevo contenido EmDash usa TipTap, un editor moderno basado en ProseMirror, pero que es como un TinyMCE gueapeao. El contenido se almacena como Portable Text (JSON estructurado), no como HTML. Visualmente es un editor de texto enriquecido, imágenes, enlaces y código, bastante básico. Ah, y no admite Markdown.
El contenido tiene estados de borrador, programado y publicado. Puedes programar la publicación para una fecha y hora concreta, igual que en WordPress. También hay un sistema de revisiones que guarda las versiones anteriores del contenido.
Gestionar usuarios
Desde la sección Users puedes invitar a otros usuarios y asignarles perfiles, y los disponibles son los mismos que en WordPress (administrador, editor, autor y colaborador) cada uno con permisos diferentes.

Los nuevos usuarios se identifican con passkeys. No hay gestión de contraseñas, ni correos de reseteo, ni ataques de fuerza bruta posibles contra un formulario de login. Esto también significa que si un usuario pierde acceso a su dispositivo con la passkey registrada, necesitará que un administrador le ayude a registrar una nueva.
Subir medios
La biblioteca de medios permite arrastrar archivos o seleccionarlos con el botón de subida. EmDash acepta imágenes, vídeos, documentos y otros tipos de archivo. En local se almacenan en el sistema de archivos, en Cloudflare van a R2 (el almacenamiento de objetos de Cloudflare, compatible con la API de S3).
Las imágenes se procesan automáticamente para generar versiones en distintos tamaños, como hace WordPress con las miniaturas.
Si has optado por probar EmDash en su playground ahí no puedes subir archivos, está limitado.
Estructura de archivos de un proyecto EmDash
Si eres de los que quiere entender qué hay dentro de la carpeta del proyecto, aquí va un resumen rápido de la estructura:
mi-sitio-emdash/ ├── astro.config.mjs ← Configuración de Astro + EmDash ├── src/ │ ├── pages/ ← Rutas del sitio (homepage, posts, archivo...) │ ├── layouts/ ← Plantillas de página compartidas │ └── components/ ← Componentes reutilizables (cabecera, footer, tarjetas...) ├── public/ ← Archivos estáticos (favicon, robots.txt...) ├── seed.json ← Datos iniciales y definición de tipos de contenido ├── package.json └── wrangler.jsonc ← Solo si despliegas en Cloudflare
El archivo astro.config.mjs es donde se configura EmDash. Un ejemplo mínimo para uso local:
import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
import { sqlite } from "emdash/db";
export default defineConfig({
integrations: [emdash({ database: sqlite() })],
});
Y para Cloudflare:
import { defineConfig } from "astro/config";
import emdash from "emdash/astro";
import { d1 } from "emdash/db";
export default defineConfig({
integrations: [emdash({ database: d1() })],
});
La diferencia principal es el adaptador de base de datos, SQLite para local, D1 para Cloudflare. El resto del código del sitio es idéntico.
La CLI de EmDash
Además del panel web, EmDash incluye una CLI que permite gestionar el sitio desde el terminal. Esto es especialmente útil si trabajas con agentes de IA o quieres automatizar tareas.
Algunos comandos que puedes probar:
# Ver todos los comandos disponibles npx emdash --help # Generar tipos TypeScript desde el esquema de la base de datos npx emdash types # Buscar contenido npx emdash search "mi búsqueda" # Crear un tipo de contenido desde la terminal npx emdash schema create posts --fields title:string,body:richtext,published:boolean # Subir un archivo a la librería de medios npx emdash media upload foto.jpg
La CLI devuelve los resultados en formato JSON, lo que la hace ideal para integraciones con scripts o agentes de IA. Si usas Claude Code, Cursor o cualquier herramienta compatible con MCP puedes conectarla directamente al servidor MCP que cada instancia de EmDash expone automáticamente.
Posibles problemas y cómo resolverlos
Algunos errores que te puedes encontrar durante la instalación:
- Error de versión de Node.js: Si ves un mensaje de error al ejecutar
npm create emdash@latest, comprueba que tienes Node.js 22 o superior. Ejecutanode --versionpara verificarlo. Si necesitas actualizar, nodejs.org tiene los instaladores para todos los sistemas. - Puerto 4321 ocupado: Si al arrancar el servidor de desarrollo ves un error de puerto en uso, puede ser que tengas otra instancia de Astro o cualquier otra aplicación usando ese puerto. Puedes arrancar en otro puerto con
npm run dev -- --port 4322. - Problemas con passkeys en local: En algunos navegadores, las passkeys no funcionan correctamente cuando el sitio corre en
localhostsin HTTPS. Chrome suele manejarlo bien, pero si tienes problemas, prueba con otro navegador o usa la opción de desarrollo que desactiva la verificación de origen. - Errores al desplegar en Cloudflare: Si el despliegue falla, lo más habitual es que falten los identificadores de D1 o R2 en
wrangler.jsonc. Revisa que los valores que te diowrangler d1 createywrangler r2 bucket createestén correctamente copiados en la configuración. - Dynamic Workers no disponibles: Si ves un error relacionado con plugins o Dynamic Workers, recuerda que esta función requiere una cuenta de pago de Cloudflare. Si no quieres pagar, puedes comentar el bloque
worker_loadersenwrangler.jsoncpara deshabilitar los plugins, como indica la documentación oficial.
¿Y después?
Con EmDash funcionando ya puedes empezar a trastear. Algunas cosas que puedes probar:
- Crear tipos de contenido personalizados y definir campos propios para ver cómo se compara con los tipos de contenido personalizados de WordPress y plugins como ACF.
- Añadir usuarios.
- Jugar con las secciones, menús y los byline, una de las cosas más raritas.
- Conectar un agente de IA al servidor MCP integrado (si usas Claude o ChatGPT con herramientas MCP, puedes gestionar contenido por conversación).
- Explorar la CLI con
npx emdash --helppara ver todas las opciones disponibles.
Si vas a hacer pruebas serias te recomiendo la instalación local con SQLite. Es la más rápida, no cuesta nada y puedes destruir y recrear el sitio tantas veces como quieras sin preocuparte de consumo ni límites.
En el siguiente artículo veremos cómo importar contenido desde WordPress a EmDash usando el exportador WXR y el plugin de migración. Si tienes un sitio WordPress y quieres ver cómo queda en EmDash, eso te interesa. Sino, pues ya estaría, dale a probar EmDash, ya te he dicho que ni de lejos es sucesor de WordPress, mucho menos espiritual, pero siempre mola probar cosas nuevas ¿no?
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

















