Naar inhoud
blog
dev

Een blog zonder database

Toen ik deze site bouwde heb ik even getwijfeld of ik er een CMS achter zou zetten voor de blog. Uiteindelijk niet gedaan. Voor een blog die ik in mijn eentje bijhoud is dat vooral extra onderhoud, en ik zit toch al de hele dag in mijn editor. Elke post is nu gewoon een bestand in de repo, en dat bevalt eigenlijk heel goed.

Eén bestand per post

Elke post is een .mdx-bestand in content/blog/. Bovenaan wat metadata, daaronder de tekst:

---
title: "Een blog zonder database"
date: "2026-06-12"
category: "dev"
excerpt: "Korte samenvatting voor de kaart."
---

De inhoud van de post.

Een nieuwe post schrijven is dus: bestand aanmaken, tekst typen, committen. Meer is het niet.

Hoe het wordt ingelezen

Bij het bouwen leest de site de hele map uit, haalt met gray-matter de metadata uit elk bestand en sorteert alles op datum. Voor elke post wordt daarna een statische pagina gegenereerd:

const posts = getAllPosts();          // leest + sorteert alle .mdx
export function generateStaticParams() {
  return posts.map((p) => ({ slug: p.slug }));
}

De MDX zelf wordt server-side gerenderd met next-mdx-remote/rsc. Er gaat dus geen extra JavaScript naar de browser om de tekst te tonen, waardoor de pagina's lekker licht blijven.

Schaalt dit?

Voor mijn doel makkelijk. De posts staan in git naast de code, dus versiebeheer en een backup heb ik er meteen bij. Zou ik ooit met meerdere mensen gaan schrijven, of echt honderden posts krijgen, dan kijk ik wel opnieuw naar een CMS. Voorlopig zie ik dat niet gebeuren.