ARQUITECTURA · LA MÁQUINA COMPLETA

Cada pieza, con su nombre.

Cómo funciona cuenta la historia de un cambio. Esto es el cableado que hay detrás: qué es cada pieza, quién la opera, qué secretos guarda y cuánto duran. Nada aquí es el diagrama de un ideal. Es lo que hace el código.

Las piezas

Seis piezas. Cuatro son suyas.

En esta lista no hay ningún servidor de aplicaciones. Su sitio se compila a archivos por adelantado, y lo único que ocurre al recibir una visita es que Cloudflare entrega uno.

PiezaQué es en realidadQuién la operaGuarda secretos
Su repositorioArchivos Markdown y HTML en GitHub. La fuente de la verdad de cada palabra de su sitio.UstedNo
Su sitioUn build estático de Astro, servido por Cloudflare Pages. HTML puro cuando llega al visitante.UstedNo
Lanza, el CMSUna aplicación Vue en /admin. Archivos estáticos, sin backend propio.UstedNo
lanza-siteEl paquete npm con el código de render y las funciones del sitio. Usted fija la versión.UstedNo
El intermediarioconnect.lanzacms.com, que se encarga del alta, el inicio de sesión y la emisión de tokens de vida corta.LanzaSí, todos
/api/mcpEl punto de conexión al que se conecta un agente de IA para editar su sitio.UstedNo
La vida de un cambio

Guardar escribe en una rama. Publicar es una fusión.

El CMS nunca escribe en su sitio en vivo. Escribe en una rama de preparación, y publicar es una fusión de git corriente, y por eso todo cambio es reversible y nada queda aplicado a medias.

  1. 01

    Usted guarda

    PUT → staging

    El CMS hace commit en la rama staging a través de su propio proxy /admin/api/gh. Su navegador nunca tiene un token de GitHub: el proxy adjunta uno por petición, limitado a este único repositorio, y caduca en aproximadamente una hora.

  2. 02

    Usted revisa

    staging.<proyecto>.pages.dev

    Cloudflare también construye la rama de preparación, así que existe una URL real que muestra exactamente lo que acaba de escribir, antes de que nadie más pueda verlo.

  3. 03

    Usted publica

    merge staging → main

    Una fusión. Sin paso de despliegue aparte y sin ninguna copia de su contenido viviendo en otro sitio.

  4. 04

    Cloudflare reconstruye

    astro build → dist

    El push a main dispara un build estático. Las entradas marcadas como borrador no se renderizan, se hayan fusionado o no.

  5. 05

    Usted cambia de opinión

    git revert

    Cada versión es un commit. Revertir es la misma operación que usaría un programador, y el CMS guarda el historial de temas por la misma razón.

Iniciar sesión

Dos comprobaciones, y ambas son obligatorias.

Su sitio no guarda ninguna clave de firma. Verifica con una clave pública incluida en el paquete, es decir que lo que demuestra quién es usted vive en un lugar del que no se le puede robar.

  1. Usted abre /admin. Le envía a GitHub pidiendo solo identidad, sin ningún permiso sobre repositorios.
  2. GitHub vuelve al intermediario, no a su sitio. El intermediario es el único lugar que guarda la clave privada.
  3. El intermediario firma una sesión (RS256) que nombra su usuario de GitHub, el origen de su sitio, un nonce de un solo uso y una caducidad.
  4. Envía ese token a su sitio en el cuerpo de un formulario, nunca en una URL, para que no acabe en el historial, en un registro ni en una cabecera de referencia.
  5. Su sitio verifica la firma con la clave pública incluida, y luego comprueba que la audiencia es este sitio, que el nonce coincide con la cookie que puso y que el token no ha caducado.
  6. Y después, por separado, comprueba su usuario contra la lista de propietarios del sitio.
Radio de impacto

Nada duradero, nada de alcance amplio.

La pregunta útil sobre una credencial no es si está cifrada. Es hasta dónde llega quien la tenga, y durante cuánto tiempo.

CredencialHasta dónde llegaDuración
Su cookie de sesiónSolo el /admin de su sitio. HttpOnly, Secure y limitada para no viajar nunca en páginas públicas7 días
El token de GitHub tras un guardadoUn repositorio, solo contenidos. Se emite por petición; nunca llega al navegador~1 hora
El token de acceso de un agenteLos sitios que usted marcó en la pantalla de consentimiento, y ninguno más1 hora, renovable
Un token emitido para una llamada de agenteExactamente un sitio. La audiencia queda fijada a él5 minutos
El material de clave de su propio sitioNada. Guarda una clave pública y solo puede verificarninguna
Para agentes

Un agente edita su sitio igual que usted.

Su sitio expone un punto de conexión MCP. Un agente que se conecte pasa por la misma ronda de OAuth que usted: código de autorización con PKCE, descubrimiento mediante los documentos estándar y un inicio de sesión de GitHub como identidad. Si tiene varios sitios Lanza, una pantalla de consentimiento pregunta cuáles puede tocar este agente, y esa elección viaja en el propio token; una respuesta manipulada solo puede restringir el permiso, nunca ampliarlo. Al agente se le entrega un token ligado al punto de conexión de un solo sitio. Nunca recibe un token de GitHub, y no hay ningún token personal que crear, pegar ni filtrar.

Leer el contrato para agentes
Lo que cuesta mantenerlo

Los sitios estáticos son baratos porque no hay nada ejecutándose.

Las vistas de página en Cloudflare Pages no se miden, así que no hay coste por visita ni un nivel de tráfico a partir del cual su factura empiece a moverse. No hay base de datos que pagar ni servidor ocioso, porque no hay servidor. El único coste recurrente es su dominio, que compra a quien quiera y apunta a donde quiera.

$0por construir, alojar y servir
~$12al año por un dominio, la única factura
0bases de datos, servidores y cosas que parchear
Actualizaciones, y marcharse

Usted fija la versión. Usted se queda los archivos.

Su sitio depende de un paquete publicado en la versión que usted elija, así que una mejora que publiquemos no cambia su sitio hasta que usted la tome, desde Ajustes, cuando le convenga. Y la salida no es una función que tuviéramos que construir: su contenido ya es una carpeta de archivos corrientes en un repositorio suyo. El intermediario es una comodidad añadida sobre un CMS que funciona sin él: ponga sus propias credenciales de GitHub y su lista de propietarios y puede operarlo entero usted mismo, con nosotros fuera del cuadro por completo.

Lea la versión en lenguaje llano.

La misma máquina, contada como historia en vez de como diagrama.

Cómo funciona