¿Qué es Grav CMS? El gestor de contenidos flat-file sin base de datos

¿Qué es Grav CMS? El gestor de contenidos flat-file sin base de datos

Compartir y resumir con IA (¡Elige tu favorita!):
Haz click en los botones de abajo para obtener un resumen del post. Fórmate con Raiola ¡En un futuro habrá más!

Grav CMS es un gestor de contenidos opensource desarrollado en PHP que guarda el contenido en archivos de texto planos dentro del propio servidor, lo que se conoce como arquitectura flat-file, en lugar de meterlo todo en una base de datos MySQL o MariaDB como hacen WordPress, Joomla o Drupal.

Dicho de otra forma: el contenido de tu web vive en ficheros dentro del proyecto, escritos en Markdown y configurados con archivos YAML, y no hay ninguna tabla SQL de por medio.

Si vienes del mundo de WordPress, estás acostumbrado al modelo clásico de PHP + base de datos: el CMS ejecuta código PHP, consulta la base de datos y construye el HTML que ve el visitante.

Grav se salta ese paso de la base de datos por completo
y lee el contenido directamente del disco, sin hacer las consultas a un motor de base de datos.

Aquí te explicamos qué es Grav CMS y cómo funciona por dentro, qué necesita para funcionar en un hosting, cómo son sus temas, plugins y su panel de administración, cuáles son sus puntos fuertes y débiles reales, cómo se compara con WordPress y, al final, dónde alojarlo y cómo instalarlo paso a paso.

¿Cómo funciona un CMS flat-file y por qué Grav no usa base de datos?

Un CMS flat-file guarda el contenido en archivos planos dentro del propio servidor en lugar de en una base de datos.

Grav CMS no usa MySQL ni MariaDB
: lee y escribe el contenido directamente en el disco del servidor, lo que simplifica las copias de seguridad y reduce el consumo de recursos del servidor.

Para entender la diferencia real, conviene mirar cómo funciona el modelo clásico:

WordPress, Joomla y Drupal son CMS desarrollados en PHP que guardan los datos y parte de la configuración en una base de datos MySQL o MariaDB
. Cuando alguien visita una de esas webs, el servidor ejecuta código PHP, lanza consultas SQL a la base de datos para recuperar el contenido y con eso construye el HTML final.

En Grav CMS ese paso intermedio desaparece: cuando llega una petición, el CMS va a buscar el contenido directamente a los archivos del disco, lo procesa y devuelve la página. No hay servidor de base de datos que consultar, ni conexión que abrir, ni tablas que recorrer.

Quitar la base de datos de la ecuación tiene "consecuencias" muy concretas y agradecidas en el día a día:

  • Copias de seguridad más simples: Como todo son archivos, un backup completo es copiar una carpeta. No necesitas exportar un .sql aparte y volver a importarlo en destino.

  • Menor consumo de recursos: Al no haber un servidor MySQL/MariaDB atendiendo consultas, se libera parte de la carga del servidor, sobre todo en sitios pequeños o medianos.

  • Versionado con Git: como el contenido son ficheros dentro del proyecto, puedes llevarlo bajo control de versiones con Git igual que el código, con sus commits y sus rollbacks.

El símil más fácil es este: en un WordPress tu contenido vive dentro de una base de datos MySQL, una caja negra que abres con phpMyAdmin; en Grav tu contenido es una carpeta de archivos de texto que puedes abrir, leer y editar con cualquier editor.

Hay un matiz honesto que conviene dejar claro: el modelo flat-file brilla en sitios de contenido más o menos estático o de tamaño contenido, como por ejemplo blogs, documentación, webs corporativas o portfolios.

Cuando un proyecto necesita manejar millones de registros, relaciones complejas o búsquedas muy pesadas, ahí una base de datos relacional sigue siendo la herramienta adecuada, y Grav no es el candidato ideal.

Markdown, archivos YAML y la estructura de contenidos de Grav

En Grav CMS el texto de tus páginas se escribe en Markdown (archivos .md) y la configuración y los metadatos se definen en archivos YAML.

Cada página es, básicamente, un archivo de texto con el contenido en Markdown y una cabecera en YAML donde defines título, plantilla, fecha o cualquier otro dato que necesites.

El formato YAML es un formato de serialización de datos legible por humanos que se apoya en pares clave-valor separados por dos puntos y un espacio, y en la indentación por espacios para definir la jerarquía.

Hay un par de detalles que conviene tener siempre presentes cuando modificas archivos YAML en Grav: la indentación se hace con espacios y nunca con tabuladores, y el formato es case-sensitive (sensible a mayúsculas y minúsculas).

Un error tonto de indentación o un tabulador colado donde no toca puede dejar un archivo YAML inválido y dañarte toda la configuración de la página, así que merece la pena revisar bien la sintaxis.

La organización habitual de Grav CMS gira en torno a una carpeta de páginas donde cada contenido es un archivo Markdown con su cabecera YAML, más las carpetas de temas y plugins. Como todo son archivos y carpetas, mover un sitio entero es tan fácil como copiar directorios,

Qué necesita Grav para funcionar en un hosting

Los requisitos de Grav CMS son modestos: básicamente necesitas una versión de PHP moderna, un puñado de extensiones de PHP habituales y espacio en disco.

Lo que NO necesitas, a diferencia de WordPress o Joomla, es un servidor de base de datos, con lo que te ahorras un requisito y un punto de configuración menos.

En un hosting PHP con cPanel tienes cubierta la parte de PHP sin complicarte.

En nuestros planes con cPanel sobre CloudLinux y LiteSpeed, dispones de un selector de versión de PHP que va desde PHP 8.4 hasta PHP 5.6 y también puedes activar o desactivar las extensiones de PHP que cada proyecto necesite.

Eso significa que puedes ajustar el entorno a lo que pida la versión concreta de Grav que vayas a instalar desde la interfaz gráfica, sin tocar la consola.

Al no depender de MySQL o MariaDB, montar Grav CMS en un hosting compartido es un proceso más corto que el de un CMS clásico: no tienes que crear una base de datos, ni un usuario, ni asignar permisos, ni copiar credenciales al archivo de configuración.

Subes los archivos, ajustas la versión de PHP y listo.

Temas, plugins y el panel de administración de Grav

Grav CMS tiene su propio ecosistema de extensiones organizado en tres piezas: el Admin Panel, un panel de administración web que es totalmente opcional, los temas que se encargan de la parte visual; y los plugins que añaden funcionalidad al sitio.

El Admin Panel de Grav es un plugin que instalas si quieres gestionar el contenido desde una interfaz web, parecida a lo que ofrece cualquier CMS clásico, en lugar de editar los archivos Markdown y YAML a mano.

Decimos que es opcional porque Grav funciona perfectamente sin él: hay quien prefiere trabajar solo con archivos y su editor de código, y hay quien agradece tener el panel para editar páginas cómodamente.

En cuanto a temas y plugins, Grav CMS tiene un repositorio oficial donde encuentras complementos ya hechos para no partir de cero en cada proyecto.

Ahora bien, seamos honestos: ese catálogo es mucho más pequeño que el de WordPress. WordPress arrastra una comunidad enorme y un ecosistema con decenas de miles de plugins y temas, y esa es precisamente su mayor ventaja competitiva.

Con Grav CMS vas a encontrar lo esencial y bastante más, pero si tu proyecto depende de una integración muy concreta, es probable que en WordPress exista un plugin ya hecho y en Grav te toque buscar una alternativa o programarla.

Puntos fuertes y puntos débiles de Grav CMS

Ya hemos comentado las virtudes de Grav CMS antes; ahora vamos con los puntos debiles de este CMS::

  • Comunidad y catálogo más pequeños: Su ecosistema de temas y plugins es limitado comparado con el de WordPress, así que a veces no encontrarás la extensión que buscas.

  • Orientado a perfiles técnicos: Para sacarle partido, conviene manejarse con Markdown, con archivos YAML y, si vas en serio, con Git. No es el CMS más amable para un usuario sin conocimientos.

  • Menos recursos no-code: Hay muchísima menos documentación, tutoriales y profesionales especializados que en WordPress o en cualquier otro CMS, donde encuentras respuesta a casi cualquier duda.

Es el mismo tipo de equilibrio que vemos en otros CMS opensource. Drupal es estable y modular, pero con una curva de aprendizaje exigente; Joomla tiene un catálogo menor que WordPress; y las arquitecturas headless ofrecen mucho rendimiento a cambio de más complejidad.

Grav CMS juega en esa liga: gana en ligereza y control, pero pide más conocimientos técnicos a quien lo maneja.

Dónde alojar Grav CMS con un hosting PHP de Raiola Networks

Para alojar Grav CMS no necesitas un producto exótico: te vale cualquier hosting PHP con cPanel que te deje elegir la versión de PHP y activar extensiones.
En nuestros planes con cPanel sobre LiteSpeed y CloudLinux tienes ese selector de PHP (de la 8.4 a la 5.6), gestión de extensiones, certificado SSL, copias de seguridad y soporte técnico 24/7 para el propio hosting.

Si tu perfil es más avanzado y quieres desplegar Grav por consola, la opción que encaja es el hosting Elástico con acceso SSH, Git y Composer. Este plan te da terminal SSH, control de versiones con Git y gestión de dependencias con Composer, que es justo lo que quieres si vas a trabajar Grav como un proyecto de código y no solo subiendo archivos.

Si no tienes claro qué recursos de CPU, RAM y disco pedir para tu proyecto con Grav CMS, contacta con nuestro departamento comercial y te ayudamos a dimensionar el plan antes de contratar, teniendo en cuenta que, al ser flat-file su consumo suele ser reducido.

Álvaro Fontela

Álvaro Fontela

Consultor WordPress, además de CEO y cofundador de Raiola Networks. Autor del libro "Curso Práctico de WordPress" y speaker en congresos de marketing digital.

Autor

Raiola Game

Elige una caja. Llévate el premio

9 cajas con productos y servicios de Raiola Networks. Eliges una y el premio que esconda será tuyo: hosting gratuito, descuentos en VPS, entradas al RMC26...

Jugar ahora
Participa y llevate hosting gratuito, descuentos en VPS, entradas para RMC26...