Introducción a EmDash

En esta página

EmDash es un sistema de gestión de contenidos nativo de Astro. Aporta patrones de CMS familiares—colecciones, taxonomías, menús, widgets y un panel de administración pulido—directamente a tu sitio Astro con soporte completo de TypeScript y despliegue portable.

Qué es EmDash

EmDash es un CMS creado específicamente para Astro. Usa las Live Content Collections de Astro 6 para servir contenido en tiempo de ejecución sin reconstrucciones. El contenido se guarda en bases compatibles con SQLite (D1, libSQL, SQLite local) y los medios en almacenamiento compatible con S3 (R2, sistema de archivos local).

Características clave:

  • Esquema orientado a la base de datos — Las colecciones y los campos se definen en la base de datos, no en el código. Crea y modifica tipos de contenido desde el panel de administración.
  • Colecciones en vivo — Los cambios de contenido están disponibles al instante. No hace falta reconstruir de forma estática.
  • Sistema de plugins — Ganchos inspirados en WordPress, almacenamiento, ajustes y extensiones de la UI de administración.
  • Portable en la nube — Funciona en Cloudflare (Workers + D1 + R2), Node.js, SQLite local y cualquier almacenamiento compatible con S3.

Qué no es EmDash

  • No es un CMS headless — EmDash está integrado de forma estrecha con Astro. No es un servicio aparte al que llames por API.
  • No es compatible con WordPress — Sin PHP ni plugins de WordPress ejecutándose directamente. Pero el contenido y los conceptos de WordPress migran con claridad.
  • No es un maquetador visual — EmDash se centra en contenido estructurado. Para maquetación visual, usa componentes de Astro.

Para quién es EmDash

Desarrolladoras y desarrolladores de agencia

Levanta sitios de clientes rápido con plugins y temas reutilizables. Sin actualizaciones de seguridad de PHP, sin conflictos entre plugins.

Desarrolladoras y desarrolladores en solitario

Framework full-stack con CMS integrado. Sin un CMS headless aparte que mantener.

Equipos editoriales

Panel de administración intuitivo. Crea y edita contenido sin tocar código.

Personas que vienen de WordPress

Ruta de migración para contenido y plugins. Herramientas modernas, conceptos familiares.

Arquitectura de un vistazo

┌─────────────────────────────────────────────────────────────┐
│                    Tu sitio Astro                           │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                 Integración EmDash                    │  │
│  │                                                       │  │
│  │  ┌─────────────┐  ┌─────────────┐  ┌──────────────┐   │  │
│  │  │  Motor de   │  │   Panel     │  │   Plugins    │   │  │
│  │  │  contenido  │  │   admin     │  │              │   │  │
│  │  └─────────────┘  └─────────────┘  └──────────────┘   │  │
│  │                                                       │  │
│  │  ┌───────────────────────────────────────────────────┐│  │
│  │  │                  Capa de datos                    ││  │
│  │  │    SQLite/D1      ←→  Kysely  ←→  R2/S3/Local     ││  │
│  │  └───────────────────────────────────────────────────┘│  │
│  └───────────────────────────────────────────────────────┘  │
│                                                             │
│  ┌───────────────────────────────────────────────────────┐  │
│  │                   Framework Astro                     │  │
│  │        Live Collections • Sesiones • Middleware       │  │
│  └───────────────────────────────────────────────────────┘  │
└─────────────────────────────────────────────────────────────┘

Conceptos básicos

Antes de profundizar, familiarízate con estos conceptos:

  • Collections — Tipos de contenido definidos en la base de datos (entradas, páginas, productos, etc.)
  • Fields — Propiedades de una colección (título, contenido, precio, etc.)
  • Taxonomies — Sistemas de clasificación (categorías, etiquetas, taxonomías personalizadas)
  • Menus — Estructuras de navegación editables en el admin
  • Widget Areas — Regiones de contenido configurables para barras laterales y pies
  • Plugins — Extensiones que añaden funcionalidad mediante hooks, almacenamiento y UI

Próximos pasos