Cómo construimos el blog de byte5
Queríamos un blog que se sintiera como el resto de byte5.ai: rápido, ligero, sin base de datos, sin lock-in de proveedor. Sin CMS headless, sin API externa. El contenido vive como archivos en el repositorio y pasa por el mismo proceso de revisión que el código.
El contenido como archivos#
Cada artículo es un archivo MDX por idioma más una entrada tipada en el registro. El registro contiene todos los campos independientes del idioma (fecha, etiquetas, autor, portada):
export const posts: BlogPostMeta[] = [
{
slug: "wie-wir-den-byte5-blog-gebaut-haben",
publishedAt: "2026-05-20",
tags: ["MDX", "Next.js", "Engineering", "byte5"],
authorId: "christian-wendler",
sourceLanguage: "de",
},
];Así, filtrar y ordenar en la vista general funcionan puramente con datos tipados. El texto en sí permanece donde corresponde: en el archivo MDX.
El contenido pertenece al repositorio, no a una base de datos. Así cada artículo recibe el mismo cuidado que cualquier cambio de código: rama, revisión, diff.
De markdown a un componente de servidor#
Los archivos MDX se compilan en tiempo de build/render y se renderizan como un React Server Component. Shiki gestiona el resaltado de sintaxis, completamente en el servidor, sin enviar un solo kilobyte de JavaScript al navegador:
¿Por qué ninguna librería de cliente?#
El resaltado, los anclajes de encabezados y el markdown con sabor GitHub ocurren todos en tiempo de render. El navegador recibe HTML terminado. Eso mantiene las páginas ligeras y los Core Web Vitals en verde.
Preparar, no apresurar#
Los artículos con una fecha de publicación futura no aparecen en la vista general. La página de detalle, en cambio, ya es accesible por enlace. Así los artículos pueden prepararse con calma y publicarse automáticamente cuando llega su fecha.
export const revalidate = 600;
export default async function BlogIndex() {
const now = Date.now(); // evaluar siempre en tiempo de render
const published = getPublishedPosts(now);
// ...
}El soporte multilingüe funciona igual: un artículo se escribe en alemán o inglés y se traduce a los demás idiomas. Si falta una traducción, la página recurre limpiamente al idioma de origen y muestra una discreta insignia de idioma.
El resultado es un blog técnicamente aburrido, en el mejor sentido. Eso es exactamente lo que queríamos.
