Naast software voor klanten bouwen we ook eigen platforms. Een daarvan is PechWijzer, een onafhankelijk Nederlands vergelijkingsplatform waarmee bezoekers pechhulp kunnen vergelijken: abonnementen, verzekeringen en directe hulp bij autopech. Het platform telt ruim 280 pagina's en wordt volledig gegenereerd vanuit één datamodel. In deze case laten we zien hoe die aanpak werkt en waarom we dezelfde opzet inzetten voor klantprojecten.
De opgave: veel pagina's, klein team
Een vergelijkingsplatform leeft van breedte en actualiteit. Bezoekers zoeken niet op "pechhulp" alleen, maar op hun eigen situatie: pechhulp in hun stad, een specifiek dashboardlampje dat brandt, of wat te doen bij pech in het buitenland. Dat vraagt om honderden pagina's die elk een concrete vraag beantwoorden.
Honderden pagina's met de hand schrijven en bijhouden is niet realistisch. Zodra een aanbieder zijn prijs wijzigt, zou je tientallen pagina's moeten nalopen. De oplossing: alle inhoud die op meerdere plekken terugkomt vastleggen als data, en de pagina's daaruit genereren.
Eén datamodel als bron voor alles
De kern van PechWijzer is een set TypeScript-databestanden: aanbieders met hun abonnementen en prijzen, steden en provincies, pechproblemen met stappenplannen en dashboardlampjes met hun betekenis. Geen CMS, geen database: de data staat in de codebase zelf en gaat mee in versiebeheer. Elke wijziging is een commit met een duidelijke diff.
// aanbieders.ts (vereenvoudigd voorbeeld)
export const aanbieders: Aanbieder[] = [
{
slug: 'voorbeeld-pechhulp',
naam: 'Voorbeeld Pechhulp',
type: 'abonnement',
prijsPerMaand: 5.95,
dekking: ['nederland', 'europa'],
},
// ...
];Omdat het TypeScript is, controleert de compiler de inhoud. Een aanbieder zonder prijs of een stad met een verkeerd gespeld provincieveld komt niet door de build. Fouten die in een CMS pas op de live site opvallen, worden hier afgevangen voordat er iets online staat.
Ruim 280 pagina's, statisch gegenereerd
Het platform is gebouwd met Next.js (App Router), TypeScript en Tailwind. Voor elk paginatype bestaat één template dat tijdens de build alle varianten genereert: één stadstemplate levert een pagina per stad op, één lampjestemplate een pagina per dashboardlampje. Zo groeit het platform naar ruim 280 pagina's zonder dat er 280 losse bestanden onderhouden hoeven te worden.
Alle pagina's worden statisch gegenereerd. Er draait geen server-side logica per bezoek: elke pagina is een kant-en-klaar HTML-bestand. Dat maakt de site snel, goedkoop in hosting en ongevoelig voor de storingen die je bij databasegedreven sites ziet.
Programmatic SEO: de paginatypes
Vergelijkingen
Pechhulpaanbieders naast elkaar: abonnementen, verzekeringen en directe hulp.
Per stad en provincie
Lokale pagina's over pechhulp, gegenereerd uit de steden- en provinciedata.
Per pechprobleem
Stappenplannen voor situaties als een lege accu of een lekke band.
Per dashboardlampje
Uitleg per lampje: wat het betekent en of je door kunt rijden.
Pech in het buitenland
Wat te regelen en wie te bellen bij autopech buiten Nederland.
Kennisbank
Achtergrondartikelen die de vergelijkingen en stappenplannen ondersteunen.
Elk paginatype beantwoordt een zoekvraag die mensen echt stellen. Omdat de pagina's uit gestructureerde data komen, zijn ze onderling consistent: dezelfde aanbieder heeft overal dezelfde prijs, dezelfde stad verwijst overal naar dezelfde provincie.
Waarom dit onderhoudbaar blijft
Het grootste voordeel zit in het beheer. Wijzigt een aanbieder zijn maandprijs, dan passen we één regel aan in het databestand. Bij de volgende build staat de nieuwe prijs op elke pagina waar die aanbieder voorkomt: in de vergelijkingen, op de stadspagina's en in de kennisbank.
Ook uitbreiden is goedkoop. Een nieuwe stad toevoegen is een nieuw item in de stedendata, waarna de build de bijbehorende pagina genereert. De inhoud groeit, maar het aantal templates en de complexiteit van de codebase groeien niet mee. Het resultaat staat live op PechWijzer.nl, een uitgave van SoftArk.
Waar deze aanpak voor klanten werkt
Dezelfde opzet, één datamodel dat honderden pagina's voedt, passen we toe in klantprojecten. Denk aan:
- • Productcatalogi waar specificaties en prijzen op één plek worden beheerd
- • Vestigings- of regiopagina's voor bedrijven die op meerdere plaatsen actief zijn
- • Kennisbanken en documentatie die uit gestructureerde bronnen worden opgebouwd
- • Vergelijkers en keuzehulpen binnen een branche of productlijn
Zelf een datagedreven platform laten bouwen?
We denken graag mee over een opzet die bij uw organisatie en inhoud past.
- Eén datamodel als bron voor al uw pagina's
- Statische generatie: snel, veilig en voordelig in beheer
- Schaalbaar naar honderden pagina's zonder extra beheerlast
