Tradução automática. Ler o original em inglês: A static blog that translates its own URLs into eight languages →
Este é o primeiro post, então pode muito bem explicar a máquina que o publicou. O site inteiro é composto por arquivos estáticos — não há servidor, banco de dados nem nada para manter em execução.
Escrevendo um post
Coloque um arquivo markdown em src/content/blog/en/. O nome do arquivo vira a URL, então how-i-removed-greptile.md é publicado em /blog/how-i-removed-greptile. O frontmatter é curto:
---
title: How I removed Greptile
description: One sentence for search results and social cards.
pubDate: 2026-08-07
tags: [tooling, code-review]
---
Defina draft: true enquanto ainda estiver trabalhando nele. Rascunhos são renderizados no npm run dev, mas ficam de fora da build.
Tradução
Quando um post chega na main, uma GitHub Action o envia para o DeepSeek V4 Flash e escreve oito traduções de volta no repositório como arquivos markdown comuns. O slug também é traduzido, então a versão turca deste post vive em uma URL turca, e não em uma URL inglesa com um prefixo /tr.
Cada arquivo traduzido registra um hash da fonte em inglês de onde veio. Na próxima execução, posts cujo hash ainda corresponde são pulados — então editar um post retraduz um post, não o arquivo inteiro.
| Camada | Escolha |
|---|---|
| Framework | Astro, saída estática |
| Hospedagem | Cloudflare Workers (ativos estáticos) |
| Tradução | DeepSeek V4 Flash no Fireworks |
| Conteúdo | Markdown no git |
Implantação
Fazer merge na main executa a passagem de tradução, commita o que mudou, faz a build e implanta. A build leva alguns segundos e a saída é uma pasta de HTML.
A melhor propriedade de um site estático é que os modos de falha são entediantes. Nada pode quebrar às 3 da manhã, porque não há nada em execução.
Pressione T para alternar entre claro e escuro, e B, A, G ou L para navegar pelo site.