Blog Marc van Kessel
Ik vind 'vibe-coden' maar niks. Toch is deze website zo gemaakt.
Vibe-coden klinkt voor veel ontwikkelaars niet als vakwerk. Toch is deze hele website (inclusief alle documentatie) zo tot stand gekomen. Of het resultaat goed is, mag je zelf beoordelen.

Eerlijk: het woord vibe-coden deed bij mij altijd een beetje pijn aan de oren.
Het idee dat iemand met een AI praat tot er iets uitkomt dat werkt, zonder echt te weten waarom: dat is voor een ontwikkelaar wat instant koffie is voor een barista. Het komt eruit. Of het lekker is, is een andere vraag.
En toch: de website die je nu leest, inclusief alle documentatie van ons framework en de basismodules van het ERP-systeem, is volledig door AI gebouwd, zonder ook maar een regel code (html, css, javascript) handmatig te schrijven. Dat is de nieuwe trend: vibe-coden, het woord van het jaar in 2025.
De aanleiding was praktisch. Op onze oude Wix-website konden we de documentatie van onze softwareproducten niet automatisch actueel houden, terwijl die juist belangrijk is voor de ondersteuning van onze klanten.
Hoe ik het heb aangepakt
Ik begon met een uitgebreide briefing voor Claude Code (de AI-assistent waarmee we dagelijks werken); de reden voor de migratie, de verwijzing naar onze oude website, en de kaders waarbinnen het moest gebeuren.
Blik onder de motorkap: onze kaders; wat we wel en wat we niet willen
Aan de ene kant kaders over wat we niet willen:
per abuis de volledige broncode publiceren of andere vertrouwelijke informatie lekken (dit overkwam het bedrijf achter Claude Code)
incorrecte code of kapotte links publiceren die de website breken
syntax- of grammaticafouten in geschreven teksten
Aan de andere kant kaders over wat we wel willen:
de structuur en inhoud van onze oude Wix website behouden
consistente huisstijl, vastgelegd in een apart merkdocument
uitgebreide Search Engine Optimization en AI-optimalisatie
expliciete regels voor de selectie van documenten ter publicatie uit onze Java software
Claude heeft binnen deze kaders een voorstel uitgewerkt voor techniek en gereedschap.
Met mijn technische achtergrond heb ik die keuzes natuurlijk ter discussie
gesteld, maar uiteindelijk heb ik, overtuigd door goede argumenten, het
advies van Claude een-op-een overgenomen.
De eerste versie viel tegen. Pas na mijn expliciete instructie om de oude Wix-website visueel vanuit een browser te bekijken, kwam er iets bruikbaars uit.
Daarna hebben we gezamenlijk alle technische- en inhoudelijke issues aangepakt. Ik gaf geen instructies wat Claude moest aanpassen, alleen punten waarover ik ontevreden was. Claude kwam op basis daarvan met één of meer voorstellen om deze te verbeteren, en voerde die op verzoek ook uit.
Maar het werkt ook andersom, simpelweg Claude vragen wat er nog ontbreekt op de website of wat er verbeterd kan worden. Claude stelt een overzichtelijke lijst samen en pakt elk punt desgewenst geheel zelfstandig op. Zowel structurele verbeterpunten, zoals het opsplitsen van de vacature-pagina, als ook de syntax- en grammaticafouten die er toch altijd weer insluipen.
Blik onder de motorkap: het advies van Claude
Hugo om van losse tekstbestanden een complete website te maken
GitHub om de broncode te bewaren
Cloudflare om alles online te zetten
Resend om berichten van het contactformulier in onze mailbox af te leveren
Voor mij vooral een kwestie van de juiste accounts aanmaken. En ook daarbij is Claude behulpzaam, bijvoorbeeld met een instructie voor de benodigde DNS-wijzigingen bij mijn specifieke internetprovider.
Het resultaat
Het resultaat is deze website met vergelijkbare branding en inhoud als het Wix-origineel. Ik pas de content lokaal aan, zo nodig met hulp van Claude, en zie het resultaat direct in mijn browser. Met één commando (git push) staat het online, volledig onder versiebeheer.
Belangrijker nog: de documentatie van onze software komt voortaan rechtstreeks uit de Java-broncode. Wat de ontwikkelaars daar bijwerken, staat na een sync ook op deze website. Geen handwerk, geen verouderde documentatie. Dat was precies waar het ons om ging.
En het mooiste: alles is platte tekst, zelfs de opmaak.
Blik onder de motorkap: een AI die zijn eigen gereedschap maakt
De scripts die de documentatie uit onze Java-broncode halen en op de
website plaatsen, plus de werkinstructies waarmee een volgende
AI-sessie ze foutloos gebruikt (skills in AI jargon), zijn door de AI zelf geschreven.
Een fragment uit het sync-script: het filteren van bestanden die we níet willen publiceren.
while IFS= read -r -d '' src; do
local name; name="$(basename "$src")"
local rel="${src#$doc_root/}"
# Skip junk files anywhere in the tree.
[[ "$name" == "___index.asc" ]] && continue
[[ "$name" == ".asciidoctorconfig.adoc" ]] && continue
[[ "$name" == wip_* ]] && continue
# Skip the subtree's top-level index.asc/_index.asc when configured to —
# the manual root index for the domain manual is the PDF book entry
# point and should be replaced by a generic _index.adoc.
if [[ "$use_source_index" == "false" && "$rel" != */* && ( "$name" == "index.asc" || "$name" == "_index.asc" ) ]]; then
continue
fi
process_file "$src" "$doc_root" "$dest_root" "$slug" "$weight"
count=$((count + 1))
done < <(find "$doc_root" -type f -name '*.asc' \
! -path '*/themes/*' \
! -path '*/tmp/*' \
-print0)
}Omdat een AI deze scripts zelf schrijft en uitvoert, is het belangrijk deze te controleren en de rechten ervan te beperken om calamiteiten te voorkomen. |
Wanneer wel, wanneer niet
Voor een afgebakend project zoals deze website werkt vibe-coden prima.
Mijn aanvankelijke scepsis is genuanceerd. Voor een afgebakend, niet-kritisch project zoals deze website kan vibe-coden gewoon werken. De website is overzichtelijk, fouten zijn snel zichtbaar en herstelbaar, en het tempo waarmee zoiets staat is opmerkelijk hoog.
Voor zwaarder werk (bedrijfssoftware waar de continuïteit van een mkb-bedrijf van afhangt) ligt het verhaal anders. Daar bouwen we niet op een vibe maar op een specificatie. Hoe dat werkt, leggen we uit op onze aanpak-pagina.
Als ik nu aan Claude vraag wat hij vindt van de website die we gezamenlijk hebben gebouwd dan krijg ik een lange lijst aan verbeterpunten, zowel technisch als inhoudelijk. En na het oplossen daarvan, wordt die lijst om een of andere reden niet korter. Misschien is het ook een kunst om op tijd te stoppen met vibe-coden. |