Ir al contenido principal
Volver a artículos

Un sitio de contenido sin base de datos

Krodox Team December 29th, 2021 statamic

Cuando se habla de escalar un sitio web, normalmente se piensa en tráfico: peticiones, servidores, balanceadores de carga. En un sitio de contenido eso rara vez es lo difícil. Lo difícil son las personas: cuántas pueden cambiar el sitio sin esperar a un desarrollador, y cuánto pueden romper al intentarlo.

Este sitio funciona sin base de datos. Cada página, cada artículo y cada documento legal es un archivo Markdown con un pequeño bloque de YAML al principio, en el mismo repositorio Git que el código.

El contenido son archivos

No hay tabla posts. El artículo que estás leyendo es un archivo, y su título, descripción y etiquetas viven en el front matter:

---
title: 'Un sitio de contenido sin base de datos'
tags:
    - statamic
seo:
  title: 'Un sitio de contenido sin base de datos'
  description: 'Cada página de este sitio es un archivo Markdown en Git.'
---

Statamic lee esos archivos directamente. Esa única decisión elimina una cantidad sorprendente de maquinaria: sin migraciones, sin seeders, sin copias de seguridad de base de datos, sin desfase de datos entre staging y producción, y sin el clásico encargo de exportar el contenido de producción solo para poder trabajar en local.

Git es el registro de auditoría

Como el contenido son archivos, cada cambio es un commit. Quién cambió una página, cuándo, y qué decía antes la frase: eso es git log, no una tabla de revisiones que alguien tuvo que construir y mantener.

También significa que el contenido y el código que lo renderiza se mueven juntos. Un rediseño que cambia la forma de un artículo y los artículos mismos entran en el mismo commit, se revisan juntos y se revierten juntos. Hemos necesitado esa reversión más de una vez.

Markdown es la única habilidad necesaria

Markdown es el mínimo para contribuir. No hace falta saber PHP, ni las interioridades de Git, ni qué es un paso de compilación. Si sabes escribir, sabes escribir Markdown, y el mismo archivo funciona igual editado desde un editor de texto, desde una interfaz web o por un desarrollador en una rama.

Lo que cuesta

Esto no está libre de compromisos, y conviene ser honestos.

Los archivos planos dejan de ser la respuesta obvia en cuanto necesitas consultar el contenido como si fueran datos: filtrar miles de entradas por varias dimensiones, o permitir que los lectores busquen por campos estructurados. Statamic indexa contenido para búsqueda sin problema, pero si tu "contenido" es en realidad un inventario, la herramienta correcta es una base de datos.

El otro coste es que editar contenido es desplegar. Eso es una ventaja cuando quien escribe se maneja con un repositorio, y fricción cuando no.

Para un sitio cuyo trabajo es explicar a qué se dedica una empresa, el intercambio nos favorece con claridad. No hay panel de administración que proteger, ni base de datos que respaldar, ni credenciales que rotar, ni estado viviendo en ningún sitio que no sea el repositorio.