Desarrollo de Aplicaciones

CMS vs Headless CMS, ¿Qué es mejor?

Cuando se va a iniciar un nuevo proyecto, es común pensar en qué arquitectura es la más apropiada. Usualmente lo proyectos web se realizan con CMS, como Wordpress, Drupal o Joomla. Pero... ¿Y el headless CMS?

Headless CMS

Los CMS permiten crear webs autogestionables, lo cual es interesante para el usuario final que quiera gestionar el contenido de su web. 

Diferencia entre CMS y Headless CMS

A priori, un proyecto web consta de las siguiente partes:

  • 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

Las cuatro primeras corresponden a backend, mientras que las cuatro últimas al frontend.

En una estructura web con un único CMS tenemos que él mismo se encarga de todas las acciones de la web. Del listado anterior se encargará de todas las tareas, desde realizar operaciones CRUD hasta de la 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, es decir, 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, esto es desde el procesamiento de datos desde frontend hasta la visualización del contenido.

Ventajas y desventajas de la arquitectura CMS

Cuando trabajamos en un sistema acoplado, dónde backend y frontend se gestionará a través de una misma plataforma nos sometemos a una serie de limitaciones:

La primera es a nivel técnico. Las personas del proyecto deben o al menos deberían ser desarrolladores Full Stack, porque todo lo que se hace en la plataforma afecta a Frontend y Backend a la vez. No tiene sentido separar roles cuando el backend genera el HTML que es la parte más importante del resultado visual. 

La segunda es que el número de desarrolladores que pueden trabajar en paralelo es más reducido, porque todos están trabajando sobre una misma plataforma, lo que hace que a más personas haya...

  • Más sincronizaciones, lo que implica tiempo no productivo.
  • Más caos al tocar todos lo mismo: uno empieza una funcionalidad, el otro la sigue, otro la sigue y el nuevo de la oficina la acaba.

Pero también tiene sus ventajas:

  • Un proyecto sencillo que pueda realizar una o dos personas FullStack se hará bastante más rápido.

Headless CMS: ventajas y desventajas

En un sistema desacoplado, al tener una plataforma para frontend y otra para backend, elimina la limitación de que todo desarrollador sea FullStack porque cada tipo de desarrollador toca su plataforma y los roles son más independientes.

Podremos tener perfiles Backend, Frontend e incluso diseñadores-maquetadores si se desacoplan los HTML del Frontend. Esto sería clave para conseguir mejores resultados visuales.   

Pueden por lo tanto trabajar más desarrolladores en paralelo, más especializados en sus áreas, con más conocimiento técnico en plataformas distintas:

  • Quien se especializa en backend puede conocer más lenguajes de programación, conocer más sistemas de bases de datos sean relacionales o no, por tanto se pueden optar por tecnologías mejores según el caso.
  • Quien se especializa en frontend puede conocer más plataformas que amplíen mercado, por ejemplo, puede conocer React Native para hacer aplicaciones móviles nativas, Electron JS para desarrollar aplicaciones de escritorio.
  • Podríamos incluso tener el rol diseñador-maquetador, llegando a resultado visuales que con un técnico no se pueden alcanzar.

La desventaja principal es que la arquitectura es un poco más compleja, con lo que en proyectos sencillos quizás no sea la solución, además de necesitar más personas del equipo implicadas.
 

Comparte este artículo

Artículos Relacionados