Llamamos CMS (content management system) a todo aquel tipo de software de gestión de contenidos web que se ejecuta en un servidor. Seguro que, aunque el término no te suene, conoces alguno: WordPress, Prestashop, phpBB, Mediawiki, Moodle, son solo algunos de los más populares, pero la lista es enorme. Con el paso del tiempo en los últimos años, se ha podido presenciar el surgimiento de las nuevas clases de CMS como el Headless CMS, que ciertamente traducido al español no resulta muy explicativo (CMS sin cabeza) no se le encontrara el sentido.
La expresión hace referencia a la idea de separar la cabeza (el front-end, lo que ve el usuario) del cuerpo (el back-end, el espacio de administración en el que los webmasters crean y gestionan los contenidos); en oposición a este modelo, el resto de CMS recibe el nombre de CMS monolíticos o acoplados. Estos grandes cambios quizá no suponga un gran avance para el propietario de una web personal, pero en entornos a los corporativos se está dando la bienvenida a estos CMS por mejorar la escalabilidad, flexibilidad y seguridad de sus canales online. Entre los nuevos CMS los más destacados son: Storyblok, Prismic, Cloud CMS, Contentful, Directus, Contentstack o Strapi.
Tabla de Contenidos
¿Qué son los Headless?
Los Headless CMS nos permiten gestionar contenido de una manera sencilla, pues tiene la facilidad de crear sitios web autoadministrables sin tener que meter las manos directamente en el código fuente. Sin embargo un CMS no es siempre la mejor opción para generar contenido dinámico, ya sea por cuestiones de rendimiento y/o recursos llevándonos a optar por otras opciones tales como una web estática o una web SSR. Sin embargo, hay casos en los que necesitamos combinar los dos mundos CMS y alguna solución para una web estática y nos encontramos en una situación en la que tenemos que decidir sobre los diferentes enfoques o las arquitecturas de CMS existentes en el mercado.
Dos de estas arquitecturas son el Headless CMS y el Decoupled CMS. Un CMS acoplado, o monolítico es todo aquél en que la aplicación de gestión de contenidos (CMA) y la aplicación de entrega de contenido (CDA) son una sola aplicación. En este tipo de sistemas, las herramientas del backend, edición de contenido, y toda la capa de presentación y diseño son inseparables. Estos sistemas son un milagro en el desarrollo y diseño web cuando queremos crear, administrar y modificar contenido de forma rápida y sencilla.
Pero pueden convertirse en una pesadilla para los desarrolladores si se necesita realizar personalizaciones o actualizaciones. Un Headless CSM es una herramienta que nos ayuda a construir un sitio web sin necesidad de escribir todo el código desde cero. El término Headless proviene del concepto de cortar la cabeza (el extremo frontal, es decir, el sitio web) del cuerpo (el back-end, es decir, el repositorio de contenido). Un Headless CMS tiene una interfaz para agregar contenido y una API RESTful (JSON) o GraphQL para servir los datos donde se necesite. El Headless solo tiene un enfoque: almacenar y entregar contenido estructurado.
Diferencia de los Headless con CMS
Mientras un CMS tradicional combina el contenido y la capa de presentación, un Headless CMS se centra únicamente en el contenido. Esto proporciona una interfaz administrativa para los gestores del contenido, permitiendo generar taxonomías. Estos sistemas son agnósticos y no entienden de plantillas, capas de presentación ni diseño, almacenando el contenido en un formato puro para poder ser servido a través de una API.
Al principio, los CMS nacieron cuando los usuarios navegaban por internando empleando navegadores de escritorio. La creciente popularidad de Internet produjo una explosión de contenido. Un CMS parecía ser la mejor herramienta para manejar contenido, de aquí nacieron mundos tan interesantes como el blogging. Pero, la tecnología simplemente estaba centrada en la página visualizada desde el navegador. A raíz de empezar a crecer el mundo mobile, los CMS intentaron adaptarse, sufriendo una alta deuda técnica.
Una manera de intentar combatir este problema fue el origen del nacimiento del concepto Headless CMS. Aunque los CMS tradicionales se han intentado adaptar proporcionando una API de contenido, se basan en una arquitectura monolítica diseñada para otra época. Por ello, muchos CMS tradicionales están dándole una vuelta a su sistema y a comenzar a construir sus bases sobre estos nuevos principios. En una estructura web con un único CMS tenemos que él mismo se encarga de:
- Realizar operaciones CRUD.
- Interacciones con la base de datos.
- Procesamiento de datos backend.
- Trabajo con Apis desde backend.
- Procesamiento de datos frontend.
- Trabajo con Apis desde frontend.
- Gestión de plantillas.
- Visualización del contenido.
En una estructura Headless CMS, mínimo tendremos dos capas:
- CMS para gestión de contenido.
- Otra plataforma para frontend.
EL CMS se encarga de la parte backend, desde la gestión de las operaciones CRUD hasta el trabajo con Apis desde backend, mientras que la plataforma frontend se encargará de la parte frontend.