Achter deze blog zit geen CMS en ook geen database. Elk artikel is een markdown-bestand dat in dezelfde repository staat als de code van LiteTMS. Een artikel publiceren werkt dus precies hetzelfde als het uitrollen van een nieuwe functie: een commit en een deploy.
We wilden dit anders aanpakken dan de meeste bedrijfsblogs, en dit artikel laat het hele mechanisme zien, inclusief de broncode van de pagina die u nu leest.
De opzet die iedereen gebruikt
Een typische bedrijfsblog draait op een compleet contentmanagementsysteem: een database, een beheerpaneel, gebruikersaccounts, plug-ins en een thema dat tegenstribbelt zodra u er iets aan aanpast. Al die mechanismen bestaan puur zodat een redactieteam kan publiceren zonder ook maar in de buurt van de code te komen.
Wij hebben geen redactieteam en we brengen onze werkdagen sowieso al door in een code-repository. Daarom hebben we al die poespas overgeslagen. Elk extra systeem moet gepatched, geback-upt en beveiligd worden. Een map met tekstbestanden niet.
Hoe een artikelbestand eruitziet
Hier ziet u een verkorte versie van de header van dit artikel, gevolgd door de opbouw van de hoofdtekst:
---
title: This blog is a folder of markdown files
slug: why-this-blog-has-no-cms
locale: en
description: There is no CMS behind the LiteTMS blog. Every post is...
date: 2026-07-15
category: technology
tags: markdown, blog, aieo, engineering
draft: false
---
The first paragraph answers the title on its own, because that is
the part search snippets and AI assistants quote.
## A section heading
Plain markdown body. Nothing exotic.
## FAQ
### Does this sample show the FAQ convention?
Yes. Each ### line is a literal question, answered right below it.
Het blok bovenaan is een platte lijst met sleutel-waardeparen. Daaronder staat gewone markdown, gerenderd door een standaard markdown-library. Eén bestand per taal: dit artikel bestaat als een .en.md-bestand en een .pl.md-bestand met dezelfde naam, waarbij de Poolse versie rechtstreeks met de hand is geschreven en niet machinevertaald.
De ## FAQ-sectie aan het einde van het voorbeeld is een vaste standaard, geen versiering. Elke vraag is zo opgesteld als iemand hem in een zoekbalk zou typen, en het buildproces zet die paren om in gestructureerde data die zoekmachines als rich results kunnen tonen. Onderaan deze pagina staat een werkend voorbeeld.
Een validator in plaats van een redacteur
Voordat er iets live gaat, leest een build-script elk artikelbestand en controleert dit aan de hand van het schema. De beschrijving moet tussen de 80 en 170 tekens lang zijn. De categorie moet een van de vijf toegestane waarden zijn. De datum moet een geldige kalenderdatum zijn en de slug moet overeenkomen met de bestandsnaam.
Vervolgens schrijft het script één enkel indexbestand met de metadata van elk artikel, en de website leest alleen dat bestand in. Een overzichtspagina opvragen kost met vijfhonderd artikelen evenveel capaciteit als met vijf.
Hetzelfde script draait in CI bij elke push. Als een artikel ongeldig is of iemand vergeet de index opnieuw te genereren, faalt de build en wordt er niets uitgerold. Foutieve content kan productie simpelweg niet bereiken, omdat productie alleen wordt bijgewerkt met artikelen die door de validator zijn goedgekeurd.
Waarom markdown, eerlijk gezegd
Markdown won om weinig glamoureuze redenen. Een markdown-bestand is in elke teksteditor te openen, met of zonder speciale hulpmiddelen. Wijzigingen zijn regel voor regel zichtbaar via een diff, zodat een artikel op exact dezelfde manier gereviewd kan worden als code: u ziet direct welke zin is gewijzigd. Daarnaast is het qua verwerking het meest efficiënte formaat voor een AI-assistent, wat met de maand belangrijker wordt.
Dat laatste punt is de reden waarom elk artikel hier op drie manieren wordt aangeboden. De pagina die u nu leest, is de HTML-versie. Voeg .md toe aan het adres in uw browser en u krijgt het ruwe bronbestand te zien, byte voor byte zoals gecommit, geserveerd als platte markdown. Bovendien heeft elke taal zijn eigen RSS-feed voor lezers en aggregators.
Er is ook een machineleesbare catalogus van alle gepubliceerde artikelen op /blog/index.md, en het llms.txt-bestand van de site verwijst AI-crawlers direct daarnaartoe. Dit levert nooit problemen op met dubbele content, omdat de ruwe bestanden zijn voorzien van een noindex-header en een canonieke link naar de HTML-pagina.
Wat u hier als lezer aan heeft
Niets van dit alles is een productfunctie. Het is een bewuste keuze voor de manier waarop we publiceren, passend bij de belofte uit het eerste artikel: geen verzonnen cijfers en inhoud die u direct bij de bron kunt controleren. Het TMS zelf is gebouwd op dezelfde voorkeur voor duidelijke, controleerbare logica. Als u rond wilt kijken: registreren is gratis.
Veelgestelde vragen
- Kan ik een LiteTMS-blogartikel als platte markdown lezen?
- Ja. Voeg .md toe aan het adres van een artikel en de site stuurt u door naar het ruwe bronbestand, geserveerd als platte markdown. De complete catalogus van gepubliceerde artikelen staat op /blog/index.md.
- Waarom gebruikt het LiteTMS-blog geen CMS?
- Omdat een CMS een tweede systeem zou zijn om te patchen en te beveiligen, terwijl de enige mensen die hier publiceren toch al in de repository van het product werken. Markdown-bestanden met een CI-validator doen exact hetzelfde met aanzienlijk minder onderhoud.
- Worden de artikelen slechter voor menselijke lezers als ze geoptimaliseerd zijn voor AI-assistenten?
- Nee. De structuur die assistenten belonen, namelijk een directe openingsalinea, beschrijvende tussenkoppen en letterlijke vragen met korte antwoorden, is dezelfde structuur die een artikel prettig scanbaar maakt. De ruwe markdown is een apart formaat, dus het artikel dat u leest blijft gewoon een normaal artikel.
Blijf op de hoogte
Maak ruimte voor betere artikelen.
Kies LiteTMS als voorkeursbron om meer van onze artikelen op Google te vinden.
Kies LiteTMS op GoogleBevestig uw keuze op Google · Opent in een nieuw tabblad