Sistemes

Com es publica aquesta web

El flux commit, build i publish darrere d''aquest bloc: releases numerades,

2 min de lectura

Fa uns mesos vaig abandonar WordPress (el gestor de continguts que fa servir mitja web) per construir la meva pròpia plataforma. Una de les parts que més m'han satisfet és aquesta mateixa web: un generador estàtic —un programa que converteix fitxers de text en pàgines, sense base de dades—, contingut en markdown (text pla amb marques de format) i un procés de publicació que es fa en tres passos. Explico com funciona, perquè m'agrada que el meu sistema es pugui explicar.

El flux en tres passos

Cada vegada que es publica alguna cosa aquí, passen tres coses, sempre en el mateix ordre:

  1. Commit: tot el contingut nou es guarda al repositori Git (el lloc on viu el codi, amb històric de tot). Res es toca sense deixar constància: si alguna cosa es trenca, sé exactament què va canviar i quan.
  2. Build: el generador estàtic (Astro) converteix el markdown en HTML (el format de les pàgines web). Si hi ha un error de sintaxi o un frontmatter mal format (la capçalera de dades de cada nota), aquí es mata — millor ara que a mitja web publicada.
  3. Publish: el resultat del build es publica com una release numerada (una versió empaquetada i etiquetada). La web pública apunta sempre a l'última release vàlida.

El detall fi: el pas 3 no és opcional ni automàtic. Vaig estar una estona mirant la web sense canvis fins que vaig entendre que el build només compila; publicar és una decisió explícita. M'agrada perquè vol dir que puc compilar tantes vegades com vulgui sense que la web es mogui.

Per què releases i no "pujar fitxers"

Amb WordPress, actualitzar era un acte de fe: pitjaves el botó i esperaves que no explotés res. Amb releases:

  • Cada versió publicada es conserva sencera. Si una release trencà alguna cosa, tornes a l'anterior en segons.
  • Puc provar el build complet abans de moure la web real.
  • El contingut viu en Git: històric complet, diffs de cada canvi (les línies exactes que canvien), i rollbacks trivials (tornar enrere).

El cost

Tot això té un preu: la web és estàtica, i les parts dinàmiques (comentaris, cerques, formularis) o es resolen amb serveis externs o no existeixen. Per a un bloc personal i portfolio, el canvi em sembla clarament favorable: la web es carrega ràpid, no té panell d'administració que atacar, i el manteniment és pràcticament zero. I quan alguna cosa del servidor no respon, sé per on començar a mirar: Servidor mort o fora de xarxa?

El que més m'agrada

Que el bloc és un repositori Git com qualsevol projecte de codi. Les notes són fitxers markdown, les portades són imatges en una carpeta, i publicar és un commit. Després d'anys gestionant bases de dades per escriure tres paràgrafs, això em sembla el lloc on sempre havia d'haver estat.