Skip to main content

Strapi

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:

  1. Modelado de datos: Definimos qué campos tiene nuestro contenido (ej. un «Artículo» tiene título, cuerpo, imagen y autor).

  2. Gestión de contenido: Los redactores escriben y suben imágenes en el panel.

  3. 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.

Ejemplos

Si tenemos un tipo de contenido llamado «Artículos», podríamos obtenerlos desde el código así:

// Ejemplo usando Fetch API
const response = await fetch(‘https://tu-api.com/api/articulos?populate=*’);
const data = await response.json();

console.log(data);

Enlaces

Recursos

Ir a Arriba