Strapi: CMS headless de código abierto con cara humana

Reseña de Strapi: el CMS headless de código abierto más popular. Tipos de contenido, API REST/GraphQL, panel de administración, plugins y experiencia real de uso.

Strapi es el CMS headless número uno en GitHub por estrellas. Código abierto, Node.js por debajo, constructor flexible de tipos de contenido y API REST + GraphQL autogenerada. Lanzado en 2015 por un equipo francés, ha crecido hasta convertirse en un ecosistema de miles de plugins y cientos de miles de usuarios.

Web: strapi.io

Cómo funciona

A diferencia de WordPress, donde el contenido está rígidamente ligado al tema y al frontend, Strapi es una API pura. Creas tipos de contenido en el panel de administración (artículos, productos, landing pages, lo que quieras), los rellenas mediante un editor visual y el frontend obtiene los datos por REST o GraphQL.

El panel de administración está hecho con React y es personalizable. Puedes añadir campos de cualquier tipo: texto, texto enriquecido, medios, fechas, relaciones (one-to-many, many-to-many), JSON, enum, contraseña. Componentes para bloques repetibles. Zonas dinámicas para una composición flexible de páginas.

Al crear un tipo de contenido, Strapi genera automáticamente la API: controladores, rutas, modelo. Lo único que le queda al desarrollador es escribir el frontend.

Plugins y ecosistema

El marketplace de Strapi cuenta con cientos de plugins. Algunos oficiales: GraphQL, documentación (autogenerada a partir de los tipos de contenido), proveedores de email y uploads. Otros de la comunidad: SEO, sitemaps, Algolia, Cloudinary, comentarios, Webhook.

La arquitectura de plugins es madura: puedes escribir los tuyos para cualquier necesidad. Esto es especialmente valioso para agencias: instalas el plugin de SEO, el sitemap, conectas Cloudflare Images y todo gratis.

Self-hosted vs Cloud

Strapi se puede desplegar en cualquier sitio: VPS, Railway, Render, Heroku, Docker. Base de datos: SQLite para desarrollo, PostgreSQL o MySQL para producción. La versión self-hosted es gratuita.

Strapi Cloud es el hosting gestionado por los creadores: $99/mes por proyecto. Backups automáticos, CDN, CI/CD incluidos de serie. Para agencias y equipos que no quieren lidiar con servidores, es una buena opción.

Detalle importante: Strapi v5 (la versión actual) requiere Node.js 20+ y usa módulos ES. La documentación se ha actualizado, pero los tutoriales antiguos para v4 no siempre son válidos.

Lo bueno

La flexibilidad en el modelado de contenido es la característica estrella. Puedes construir un esquema de cualquier complejidad: desde un blog hasta un marketplace con entidades interrelacionadas. La API se genera automáticamente; filtrado, ordenación y paginación vienen de serie.

El modelo de roles (RBAC) permite diferenciar el acceso para editores, autores y administradores. La internacionalización (i18n) está integrada: puedes crear contenido en varios idiomas sin apaños.

El panel de administración es agradable. Material Design limpio, intuitivo, rápido. Los editores de contenido lo dominan en una hora.

Lo no tan bueno

Strapi es un monolito Node.js. Si el proyecto crece hasta millones de registros, la base de datos empieza a resentirse. La v5 incluye mejoras de rendimiento, pero está lejos de soluciones headless en Go (como Payload CMS 3).

Las actualizaciones de versión mayor son un dolor. La migración de v3 a v4 fue una odisea; de v4 a v5 fue más fácil, pero las migraciones aún requieren trabajo manual. Para proyectos de larga duración, esto es un factor a considerar.

El soporte de TypeScript mejoró en v5, pero no es profundo en todas partes. Algunos plugins de la comunidad siguen en JavaScript puro sin tipos.

Veredicto

Strapi es una excelente elección para el 90% de los proyectos que necesitan un CMS headless. Gratis, código abierto, flexible, con un excelente panel de administración y una comunidad activa. Ideal para blogs, landing pages, sitios corporativos y pequeños e-commerce. Para escenarios de alta carga, echa un vistazo a Ghost (si solo es contenido) o Payload.