Een statische blog die zijn eigen URL's vertaalt naar acht talen

/ Artikel

Machinaal vertaald. Lees het Engelse origineel: A static blog that translates its own URLs into eight languages →

Dit is het eerste bericht, dus het kan net zo goed de machine uitleggen die het heeft gepubliceerd. De hele site bestaat uit statische bestanden — er is geen server, geen database en niets dat draaiende gehouden moet worden.

Een bericht schrijven

Zet een Markdown-bestand in src/content/blog/en/. De bestandsnaam wordt de URL, dus how-i-removed-greptile.md wordt gepubliceerd op /blog/how-i-removed-greptile. De frontmatter is kort:

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

Zet draft: true zolang je er nog aan werkt. Concepten worden weergegeven in npm run dev, maar worden buiten de build gelaten.

Vertaling

Wanneer een bericht op main terechtkomt, stuurt een GitHub Action het naar DeepSeek V4 Flash en schrijft acht vertalingen terug naar de repo als gewone Markdown-bestanden. De slug wordt ook vertaald, dus de Turkse versie van dit bericht staat op een Turkse URL in plaats van een Engelse URL met een /tr-prefix.

Elk vertaald bestand slaat een hash op van de Engelse bron waar het vandaan komt. Bij de volgende run worden berichten waarvan de hash nog overeenkomt overgeslagen — dus het bewerken van één bericht vertaalt één bericht opnieuw, niet het hele archief.

Laag Keuze
Framework Astro, statische output
Hosting Cloudflare Workers statische assets
Vertaling DeepSeek V4 Flash op Fireworks
Inhoud Markdown in git

Implementatie

Een merge naar main voert de vertaalronde uit, commit wat er veranderd is, bouwt en implementeert. De build duurt een paar seconden en de output is een map met HTML.

Het mooiste aan een statische site is dat de faalmodi saai zijn. Er kan niets omvallen om 3 uur ’s nachts, omdat er niets draait.

Druk op T om te schakelen tussen licht en donker, en op B, A, G of L om door de site te springen.