Strapi
Un CMS headless open source basado en Node.js.
Descripción
A diferencia de los CMS tradicionales, Strapi se centra exclusivamente en la gestión del contenido y lo entrega a través de una API de alto rendimiento.
Características principales
Personalización total
Strapi es self-hosted, lo que significa que se puede instalar en un servidor propio (AWS, DigitalOcean, Google Cloud). Al ser de código abierto, tendremos acceso total al código fuente para modificar el comportamiento del panel de administración o de la API según nuestras necesidades.
Panel de administración intuitivo
A diferencia de otros CMS, que son difíciles de usar para los editores, Strapi ofrece una interfaz limpia donde se pueden crear content types (tipos de contenido) sin tocar una sola línea de código.
Soporte multi-base de datos
Podemos elegir la base de datos que mejor se adapte a nuestro proyecto: PostgreSQL, MySQL, MariaDB o SQLite.
API dual (REST y GraphQL)
Por defecto, Strapi genera una API REST completa para nuestros contenidos, pero permite instalar un plugin oficial de GraphQL con un solo clic, en caso de que prefiramos ese protocolo.
Flujo de trabajo
El proceso de trabajo se divide en tres capas bien definidas:
-
Modelado de datos: Definimos qué campos tiene nuestro contenido (ej. un «Artículo» tiene título, cuerpo, imagen y autor).
-
Gestión de contenido: Los redactores escriben y suben imágenes en el panel.
-
Consumo de datos: Nuestro frontend (React, Next.js, etc.) hace una petición a la API y muestra la información.
Ventajas técnicas
Sistema de roles y permisos (RBAC)
Permite definir de forma muy granular qué puede hacer cada usuario (quién puede editar, quién solo leer y quién puede publicar).
Webhooks
Podemos configurar Strapi para que avise a otros servicios cuando algo cambie. Por ejemplo: «Cuando se publique un artículo, avisa a Netlify para que reconstruya la web».
Ecosistema de plugins
Cuenta con un marketplace de plugins para añadir funciones como optimización de imágenes, envío de correos, o integración con Cloudinary.
Internacionalización (i18n)
Permite crear versiones de nuestro contenido en múltiples idiomas de forma nativa.
Inconvenientes
Mantenimiento del servidor
Nos tendremos que hacer responsables de las actualizaciones de seguridad y de que el servidor no se caiga.
Consumo de recursos
Al estar basado en Node.js, requiere más memoria RAM que un CMS simple en PHP.
Migraciones de base de datos
A veces, al cambiar de versión, la migración de los datos puede ser compleja.