notes
14 ago 2026 · 1 min read

Sitios estáticos, revisitados

Hace dos años moví este sitio a un stack renderizado en servidor persiguiendo funcionalidades que usé tal vez dos veces. El mes pasado lo volví a llevar a algo que simplemente construye archivos y se sienta en una CDN. Fue, sin exagerar, la ganancia de rendimiento más rápida que publiqué en todo el año.

Por qué lo estático sigue ganando

La mayor parte de lo que necesita un blog —tipografía, un primer paint rápido, contenido que no cambia por petición— es exactamente en lo que la salida estática es mejor. El trabajo de servidor que había agregado no servía a los lectores; servía mi propia curiosidad sobre el stack.

La petición más rápida es la que tu servidor nunca tiene que pensar.

El único lugar donde mantuve comportamiento dinámico fue en las colecciones de contenido —frontmatter tipado, verificado en tiempo de build:

const blog = defineCollection({
  loader: glob({ pattern: '**/*.md', base: './src/content/blog' }),
  schema: z.object({
    title: z.string(),
    pubDate: z.coerce.date(),
  }),
});

Si el frontmatter de una entrada está mal, el build falla antes de llegar jamás a un lector. Ese es todo el atractivo —la corrección como subproducto de la simplicidad, no un framework atornillado encima.

Nada de esto significa que el renderizado en servidor esté mal para todo proyecto. Significa que estaba mal para este —un puñado de páginas que cambian unas pocas veces al mes, leídas por gente que solo quiere que las palabras aparezcan rápido.