Cómo se construye este sitio

/ Artículo

Traducción automática. Leer el original en inglés: A static blog that translates its own URLs into eight languages →

Esta es la primera entrada, así que bien podría explicar la máquina que la publicó. Todo el sitio son archivos estáticos — no hay servidor, ni base de datos, ni nada que mantener en funcionamiento.

Escribir una entrada

Coloca un archivo markdown en src/content/blog/en/. El nombre del archivo se convierte en la URL, así que how-i-removed-greptile.md se publica en /blog/how-i-removed-greptile. El frontmatter es breve:

---
title: How I removed Greptile
description: One sentence for search results and social cards.
pubDate: 2026-08-07
tags: [tooling, code-review]
---

Establece draft: true mientras sigas trabajando en ella. Los borradores se renderizan en npm run dev pero se omiten en la compilación.

Traducción

Cuando una entrada llega a main, una GitHub Action la envía a DeepSeek V4 Flash y escribe ocho traducciones de vuelta en el repositorio como archivos markdown normales. El slug también se traduce, así que la versión turca de esta entrada reside en una URL turca en lugar de una inglesa pegada a un prefijo /tr.

Cada archivo traducido registra un hash de la fuente en inglés de la que proviene. En la siguiente ejecución, las entradas cuyo hash aún coincida se omiten — así que editar una entrada retraduce una entrada, no todo el archivo.

Capa Opción
Framework Astro, salida estática
Alojamiento Cloudflare Workers, activos estáticos
Traducción DeepSeek V4 Flash en Fireworks
Contenido Markdown en git

Despliegue

Fusionar en main ejecuta el paso de traducción, confirma lo que haya cambiado, compila y despliega. La compilación dura unos segundos y la salida es una carpeta de HTML.

La mejor propiedad de un sitio estático es que los modos de fallo son aburridos. Nada puede fallar a las 3 de la mañana, porque no hay nada en ejecución.

Presiona T para alternar entre claro y oscuro, y B, A, G o L para saltar por el sitio.