Onder de motorkap van Denkgarage.nl
Een kijkje onder de motorkap van deze website: van Astro en Markdown tot de ontwikkelworkflow met AI en de statische uitrol via Cloudflare.
gepubliceerd
Denkgarage is bewust eenvoudig opgebouwd. De site draait op Astro, artikelen zijn gewone Markdown-bestanden en Cloudflare serveert de website. Er is geen database, CMS of aparte applicatieserver nodig.
Die keuze maakt de site snel en overzichtelijk, maar vooral ook goed te onderhouden en relatief veilig. AI helpt mij bij het ontwikkelen en schrijven; ik bepaal de richting, controleer de wijzigingen en doe de eindredactie.
De technische basis
Astro bouwt de website vooraf. Tijdens die build worden artikelen, componenten en styles samengevoegd tot gewone HTML- en CSS-bestanden. De browser hoeft dus geen complete JavaScript-library in te laden voordat een artikel leesbaar is.
De broncode is verdeeld over een paar duidelijke mappen:
src/content/articlesbevat de artikelen;src/pagesbepaalt de routes en paginaopbouw;src/componentsbevat herbruikbare onderdelen;src/styles/global.cssbevat de centrale vormgeving;distbevat de productieversie voor Cloudflare.
Een artikel heeft vaste metadata voor onder meer de titel, categorie, datum, leestijd en status. Astro controleert die structuur tijdens de build. Ontbreekt een verplicht veld of staat er een ongeldige waarde, dan stopt de build. Zo wordt een fout ontdekt voordat de wijziging online komt.
Van wijziging naar website
De workflow is klein en herhaalbaar:
- het doel van de wijziging bepalen;
- de bestaande code en ontwerpafspraken bekijken;
- tekst, componenten of stijlen aanpassen;
- het resultaat lokaal in de browser beoordelen;
- met
pnpm buildde content, types en productiebuild controleren; - de inhoud van
distvia Cloudflare publiceren.
Voor de vormgeving gelden vaste ontwerpafspraken. Kleuren, lettertypen en afstanden zijn centraal vastgelegd. Een styleguide en aparte beeldrichtlijnen bewaken het karakter van Denkgarage: redactioneel, technisch en tastbaar, zonder dat iedere pagina opnieuw ontworpen hoeft te worden.
Waar AI helpt
AI gebruik ik als ontwikkelgereedschap. Het kan de repository onderzoeken, een voorstel uitwerken, bestanden aanpassen en controles uitvoeren. Bij artikelen helpt het met structuur en formulering.
De projectinstructies vormen daarbij vangrails. AI mag geen projectdetails verzinnen, moet bestaande ontwerpkeuzes respecteren en hoort na een wijziging de relevante build uit te voeren. Ik blijf verantwoordelijk voor de opdracht, de feiten en wat er uiteindelijk wordt gepubliceerd.
Dat versnelt het proces van idee naar prototype, maar neemt de noodzaak van controle niet weg.
Waarom een statische website?
Een statische website is minder kwetsbaar voor bepaalde aanvallen. Bij een bezoek aan Denkgarage draait geen servercode en wordt geen databaseverbinding gemaakt. De website heeft ook geen inlogscherm. Aanvallen zoals SQL-injectie of misbruik van een inlogscherm zijn daardoor niet van toepassing.
Dat betekent niet dat een statische site automatisch onkwetsbaar is. De publicatieomgeving, dependencies en het Cloudflare-account moeten nog steeds goed worden beveiligd. Ook onveilige externe scripts of ongecontroleerde HTML kunnen problemen veroorzaken. Maar tijdens een normaal paginabezoek zijn minder actieve onderdelen nodig en kan er dus ook minder worden misbruikt of verkeerd geconfigureerd.
De statische aanpak heeft nog drie praktische voordelen:
- pagina’s kunnen direct als bestanden worden geserveerd;
- een verkeerspiek vraagt niet ineens om extra database- of servercapaciteit;
- de productieversie komt rechtstreeks uit de build die lokaal is gecontroleerd.
Iedere inhoudelijke wijziging vraagt een nieuwe build en deployment. Dat is voor mij een bewuste keuze, omdat ik de site met AI ontwikkel en de content in Markdown beheer. Er zou een CMS achter kunnen hangen, maar daar heb ik nu geen behoefte aan.
Waarom Cloudflare?
Cloudflare past goed bij deze opzet omdat het de statische bestanden direct via zijn netwerk kan aanbieden. In wrangler.jsonc is de map dist als bron ingesteld. De configuratie regelt ook de domeinroutes, URL’s met een afsluitende schuine streep, preview-URL’s en de eigen 404-pagina.
Daar komt een beveiligingslaag bij. Cloudflare verzorgt de versleutelde HTTPS-verbinding, kan ongewenst verkeer met firewallregels filteren en DDoS-aanvallen automatisch aan de netwerkrand opvangen. Omdat de site uit statische assets bestaat, hoeft er bovendien geen afzonderlijke publiek bereikbare applicatieserver achter te staan.
De Web Application Firewall is voor deze eenvoudige site minder belangrijk dan voor een dynamische applicatie met formulieren en API’s. Toch kan hij nuttig zijn voor aangepaste regels, rate limiting en eventuele toekomstige interactieve onderdelen. De beveiliging kan zo meegroeien zonder dat de huidige architectuur ingewikkelder wordt.
Cloudflare en MCP
Een tweede reden om voor Cloudflare te kiezen is de aansluiting op beheer met AI. Cloudflare biedt remote MCP-servers waarmee een AI-tool via een gestandaardiseerde koppeling Cloudflare-diensten kan benaderen.
Met gerichte OAuth-toestemming kan zo’n koppeling bijvoorbeeld configuratie bekijken, informatie over builds ophalen of logs en observabilitygegevens raadplegen. Cloudflare biedt daarvoor zowel een algemene API-koppeling als gespecialiseerde MCP-servers. De rechten kunnen beperkt blijven tot wat voor een taak nodig is.
Bewust klein
Voor accounts, persoonlijke dashboards of voortdurend veranderende data zou een andere architectuur nodig zijn. Denkgarage bestaat nu vooral uit verhalen, beelden en kleine experimenten. Daarvoor is een statische basis geen beperking, maar een eenvoudige manier om snelheid, veiligheid en onderhoudbaarheid te combineren.
De techniek kan later veranderen wanneer de inhoud daarom vraagt. Tot die tijd blijft de workflow overzichtelijk: schrijven in Markdown, builden met Astro, controleren en als statische website publiceren via Cloudflare.

