Wie ben ik
Van HTML voor Dummies tot MediaWiki-architect.
Twintig jaar geleden begon het met een boek uit de Bruna. Wat volgde was twee decennia bouwen, breken en opnieuw bouwen: van eigen servers op de thuiscomputer tot de kunstatlas van A-Pack, gesteund door het Franse Ministerie van Cultuur.
De rode draad
Drie dingen die twintig jaar hetzelfde bleven.
MediaWiki
In 2004 voor een Splinter Cell walkthrough. In 2008 voor buzet.nl, vastgelegd door het Internet Archive. In 2021 voor een overheidsorganisatie. In 2025 voor de kunstatlas van Frankrijk. Steeds hetzelfde platform, steeds een orde van grootte zwaarder.
Zelf de infrastructuur draaien
XAMPP en MySQL op de thuiscomputer, Hamachi als netwerk zodat vrienden konden verbinden, private servers die ik zelf overeind hield. Nu Docker met nginx, php-fpm en MySQL 8, met een zelftest van achtentwintig punten die zegt of de stack klopt.
Gereedschap bouwen zodat een ander het overneemt
Dat is het derde, en het is het belangrijkste geworden. Een migratie is af als de site draait. Ik vind dat niet genoeg: het platform moet zichzelf schoon kunnen houden als ik er niet meer ben.
Tijdlijn
20+ jaar. Eén rode draad.
2003
HTML voor Dummies. Gekocht bij de Bruna.
Mijn moeder kocht het boek. Vanaf dat moment zat ik alles uit te proberen. Paint, Windows Movie Maker, Adobe Premiere. Alles wat aanpasbaar was werd aangepast. Dit was het begin van twintig jaar werk.
2004
MySQL op de basisschool. MediaWiki voor GTA en Splinter Cell.
Op tienjarige leeftijd eigen GTA San Andreas multiplayer servers opgezet via SA-MP. XAMPP en MySQL lokaal draaien. Hamachi als virtueel netwerk zodat vrienden konden joinen. Tegelijkertijd MediaWiki opgezet voor de GTA Games community en een Splinter Cell walkthrough wiki gebouwd met 5.000 pagina’s. Niemand op school wist wat een database was.
2005
Habbo Hotel private server en Sulake scripts
Eigen Habbo Hotel private server opgezet met een emulator, MySQL database en XAMPP. Sulake scripts gecodeerd en aangepast. Hamachi als virtueel netwerk zodat anderen konden verbinden. Backend van een platform met miljoenen gebruikers nagebootst op een thuiscomputer.
2006
Rockstar North mods en RuneScape private servers
Mods gemaakt voor Rockstar Games North titels. Eigen RuneScape private servers opgericht en beheerd, inclusief database, spelersbeheer en community. Serverinfrastructuur volledig zelfstandig opgezet en draaiende gehouden.
2007
Forums bouwen voor echte mensen
IP.Board en Invision Power Board forums opgezet en beheerd voor meerdere communities. Waaronder een forum speciaal voor mensen met autisme. e107 en Joomla gehost en beheerd. De techniek begon mensen te verbinden die dat anders moeilijk vonden.
2008
Het staat nog in het archief
Op 9 februari 2008 legde het Internet Archive een MediaWiki vast op buzet.nl, in het Nederlands, met hoofdpagina, navigatie, geschiedenis en een link naar de mailinglijst voor nieuwe versies. In de vastleggingen daaromheen staan een SMF forum met subfora voor filmen en montage, een browsergame met registratiepagina en huisregels, en een nieuwspagina met een kolom medewerkers. Vijftien vastleggingen van de voorpagina, en 121 losse URL's van het domein in totaal. Niemand hoeft mij te geloven.
2009
Eerste commerciële websites
WordPress en e-commerce voor betalende klanten. Hosting opgezet en beheerd. Vijf jaar experimenteren in game communities bleek direct toepasbaar in het bedrijfsleven. Eerste professionele opdrachten afgerond.
2016
Shopify en professionele videobewerking
Shopify webshops voor klanten. Adobe Premiere professioneel ingezet voor videobewerking, een vak dat al begon met Windows Movie Maker in 2003. E-commerce en video gecombineerd tot een compleet pakket voor ondernemers.
2018
Grootste champagneverkoper op Bol.com. Landelijk in het nieuws.
Diploma Zomerondernemer 2018 behaald. Ondernemer in exclusieve champagnes, B2B. Destijds de grootste verkoper van champagne op Bol.com. Het concept trok landelijke media-aandacht: in de krant, op RTV Hattem, RTV Oost en BNR Radio. Een proefperiode die duurde tot medio 2021. Bewijs dat ondernemen en zichtbaarheid hand in hand gaan.
2021
Start van het werk voor de overheid
Ultra-complexe MediaWiki omgevingen voor grote overheidsorganisaties. Wat ik in de jaren daarvoor uit nieuwsgierigheid had gedaan, werd hier het werk zelf.
2023
Maatwerk voor ondernemers met een visie
Een cateringsite gebouwd, en een website voor een traditionele kapperszaak in Fojnica in Bosnië. Klanten die weten wat ze willen en een partner zoeken die dat kan bouwen.
2025
De kunstatlas van Frankrijk, gered in plaats van herbouwd
Een gehackte MediaWiki 1.26.4 uit 2015 in fasen naar 1.39.10, van PHP 7.4 naar 8.3 en van MySQL 5.7 naar 8.0. Drieenveertig extensies moesten mee, en een aantal daarvan is met de hand op PHP 8 gezet. De database is ter plekke gerepareerd in plaats van opnieuw opgebouwd, omdat twintig jaar redactiewerk zich niet laat herbouwen.
2026
Een systeem dat zichzelf meet
Deze site is de voorkant van een meetsysteem dat robertblok.com en rbck.nl elk kwartier bezoekt en atlasmuseum.net elk uur, met een echte Chromium. Elke meting wordt vastgelegd als onwijzigbaar record in een hashketen, en de site laat je die keten in je eigen browser narekenen. Daarnaast bouw ik een meertenant SaaS voor de uitvaartbranche, nog niet gelanceerd en daarom anoniem beschreven.
Hoofdstuk 1
Het staat nog in het archief
Ik weet niet meer precies wanneer ik begon. Het Internet Archive wel.
Op 31 augustus 2007 legde het buzet.nl vast, een jongerensite die ik zelf draaide. In de anderhalf jaar daarna staan er vijftien vastleggingen, en daarin zie je het uit de hand lopen. Een community met polls en een RSS-kanaal. Een IP.Board forum, gelicentieerd op mijn eigen domein. Daarna een SMF forum met subfora voor filmen en montage. Een browsergame met een registratiepagina en huisregels waar je op moest aanvinken. Een nieuwspagina met een kolom medewerkers.
En op 9 februari 2008 een MediaWiki. In het Nederlands. Hoofdpagina, navigatie, geschiedenis, persoonlijke instellingen, een link naar de MediaWiki-mailinglijst voor nieuwe versies.
Ik was er niet mee bezig een carriere te beginnen. Ik wilde dat het werkte.
Vijftien vastleggingen tussen 31 augustus 2007 en 14 april 2026. Hieronder de zeven die uitgeschreven zijn, met het pad erbij, want het pad verraadt welk pakket eronder draaide.
| Datum | Pad | Wat er draaide | Wat er te zien is |
|---|---|---|---|
| Bekijk de vastlegging van 31 augustus 2007 in het Internet Archive | buzet.nl | Buzet Corprations | Een eenvoudige site met de navigatie Home, Informatie, Contacteer ons, Links en Movies. De begintekst kondigt aan dat Buzet een jongerensite is, met plannen voor de filmindustrie en een online magazine. |
| Bekijk de vastlegging van 16 januari 2008 in het Internet Archive | buzet.nl/index | CMS met polls en RSS | Een volwaardige community met Main Menu, inlogformulier, polls, RSS-kanaal en Newsflash. De rubrieken lopen van Games en Sport tot School en studie. De poll op de voorpagina vraagt bezoekers of ze het thema mooi vinden. |
| Bekijk de vastlegging van 17 januari 2008 in het Internet Archive | buzet.nl/forum | IP.Board 2.3.3 | Een IP.Board forum, gelicentieerd op Buzet.nl, met Portal, Today’s Active Topics, Today’s Top 20 Posters, Arcade, Blogs en Gallery. |
| Bekijk de vastlegging van 9 februari 2008 in het Internet Archive | buzet.nl/nuac | MediaWiki Dit is de vastlegging waar de regel over twintig jaar MediaWiki op rust. Geen bewering, maar een pagina met een datum eraan. | Een MediaWiki in het Nederlands, onder de naam Nuac Incorp. Hoofdpagina, navigatie, bewerken, geschiedenis, persoonlijke instellingen, en links naar de MediaWiki FAQ en de mailinglijst voor nieuwe versies. |
| Bekijk de vastlegging van 17 februari 2008 in het Internet Archive | buzet.nl/nieuws.php | Eigen nieuwspagina | Een nieuwstabel met kolommen voor onderwerp, datum, medewerkers en tekst. Drie berichten: een nieuw websysteem op komst, waarschijnlijk php-fusion, met de vraag aan bezoekers om mee te denken over de vormgeving. De kantine in Hattem-Zwolle die tijdelijk gesloten is. En een nieuwe game die online is gezet. |
| Bekijk de vastlegging van 28 februari 2008 in het Internet Archive | buzet.nl/bs/signup.php | Browsergame, Bulletstar | Een aanmeldpagina voor een browsergame met gebruikersnaam, e-mail, startstad en een referral-veld, plus drie huisregels waar je op moet aanvinken. De paginatitel is Criminals, de regels verwijzen naar Bulletstar. |
| Bekijk de vastlegging van 16 september 2008 in het Internet Archive | buzet.nl/forum | SMF 1.1.6 | Inmiddels een SMF forum onder de naam Videoforum, met de rubrieken News, Mededelingen, Tutorials, Programmatjes, Wedstrijden, Filmen met de subfora Gevorderd en Beginners, Je eigen gemaakte films, Games, en Sport en Beweging. |
Binnen achttien maanden op een domein: een CMS-community, twee forumpakketten, een MediaWiki, een browsergame met registratie en een nieuwsredactie met medewerkers. Niet als opdracht, maar uit mijzelf.
Een pakket installeren was in 2007 makkelijker dan het klinkt, en er waren meer tieners die een forum draaiden. Wat er wel toe doet is de breedte en het doorzetten, en dat twintig jaar later dezelfde soort software draait onder een kunstatlas met steun van een ministerie.
Waar ik mee werk
Elk gereedschap met de plek waar het gedraaid heeft.
A
MediaWiki en semantiek
- MediaWiki 1.26.4 tot 1.39.10atlasmuseum, vier generaties in fasen
- Semantic MediaWiki 5.1.051.277 entiteiten opnieuw opgebouwd
- Drieenveertig extensiesstuk voor stuk mee naar PHP 8.3
- PageForms en arraymapde nacht dat 4.589 pagina's de verkeerde waarde hadden
- Wikidata en verrijkingWikidataBundle, achttien sub-extensies
- Eigen skinAtlasNova, 1.478 regels
B
Backend en data
- PHP 8.315.929 regels eigen PHP in de kunstatlas
- MySQL 8van 5.7 naar 8.0, database ter plekke gerepareerd
- Prepared statementseen SQL-injectie in de kaartgenerator gedicht
- TypeScript, strictdit platform, geen any
- PostgreSQL met hashketenselke meting op deze site
- Wachtrij met SKIP LOCKEDtwee workers, nul dubbele uitvoeringen
C
Infrastructuur
- Docker, nginx, php-fpmde stack onder atlasmuseum
- Zelftest van achtentwintig puntenwiki.sh, zegt of de stack klopt
- Statuspagina per endpointAMAPIStatus, voor de overdracht
- Caching in twee lagen26 tot 64 keer sneller bij herhaalde lading
- Back-up per bewerkt bestandachtentwintig met tijdstempel in de boom
- Eigen hosting en VPSrbck.nl, doorlopend
D
Front-end en toegankelijkheid
- WCAG 2.2 AAdeze site meet het tegen zichzelf, elke run
- axe-corein de meting, niet achteraf
- De toegankelijkheidsboomvia het Chrome DevTools Protocol
- CSS met design tokensgeen framework, een bron in plaats van twintig kopieen
- WebGL2 en shadersde bewegende delen van deze site
- Twee talen zonder duplicateneen woordenboek, een routetabel
E
Meten en bewijzen
- Playwright met echte Chromiumelk kwartier, drie doelen
- sha256 over elk recordde keten die je zelf kunt narekenen
- Canonieke JSONRFC 8785, zodat dezelfde meting dezelfde hash geeft
- Architectuurregels als test65 modules, nul overtredingen
- Droge run voor elke bulkbewerkingAtlasRepair, 1.343 records aangemerkt
- Runbook bij opleveringzestig pagina's met de foutencatalogus erin
F
Webshops en CMS
- Shopifymaatwerk voor ondernemers, vanaf 2016
- WordPress en e-commercede eerste betalende klanten, 2009
- IP.Board en SMFbuzet.nl, vastgelegd in het archief in 2008
- e107 en Joomlagehost en beheerd, 2007
- Migraties tussen pakkettenvier websystemen op een domein in achttien maanden
- Adobe Premieresinds 2003, later professioneel ingezet
Waar het op draait
Hoe ik werk
De regels waar ik me aan hield.
Dit is het deel dat op geen enkel ander portfolio staat, en het is het deel waar een opdrachtgever iets aan heeft.
Eerst bewijzen, dan offreren
Bij atlasmuseum bouwde ik uit de database-dump de hele site na in een offline omgeving op mijn eigen machine, zonder verbinding met de live site. Pas toen die test aantoonde dat de inhoud te redden was, kwam er een plan en een prijs. Ik verkoop geen zekerheid die ik nog niet heb.
Elke bulkbewerking draait eerst droog
Eerst een run die niets verandert en een rapport schrijft, dan een overzicht met elke voorgestelde wijziging van huidige naar gecorrigeerde waarde, en pas dan een toepassing met attributie en een snelheidslimiet. Er is geen pad waarbij een massabewerking gebeurt zonder dat een mens bevestigt.
Elk bewerkt bestand wordt eerst geback-upt
Met een tijdstempel, zodat elke afzonderlijke wijziging terug te draaien is. In die boom staan achtentwintig van die back-ups. Dat is geen rommel, dat is de regel.
Nooit rechtstreeks uit SQL
De eigen API-laag leest MediaWiki uitsluitend via de stabiele action API. Daardoor kan een toekomstige upgrade de backend niet breken. Dat is precies wat er misging bij de installatie die ik erfde.
Wat niet gemeten kan worden, staat er niet
Elk cijfer op deze site komt uit een meting of uit een bron die ik erbij kan noemen. Wat nog niet vaststaat, laat ik weg. Er staat een test in deze repository die daar op controleert en de build laat falen.
Een runbook voor wie na mij komt
Zestig pagina's, met de complete foutencatalogus en de openstaande punten erin. Niet omdat het moest, maar omdat de volgende ontwikkelaar niet opnieuw moet uitzoeken wat ik al weet.
Uitgewerkt
Twee projecten van dichtbij.
2025 · MediaWiki · Frankrijk
atlasmuseum, noodmigratie en heropbouw
Een gehackte MediaWiki 1.26.4 uit 2015 in fasen naar 1.39.10 gebracht, de database ter plekke gered in plaats van opnieuw opgebouwd, en zes eigen tools gebouwd voor kwaliteit, reparatie en verrijking.
Lees de case studyin ontwikkeling · EUDI-wallet
Blokpunt, de wallet naast DigiD
Publieke organisaties moeten de Europese identiteitswallet eind 2026 kunnen accepteren, overal waar nu met DigiD wordt ingelogd. Blokpunt neemt de wallet aan de voorkant aan en levert aan de achterkant af in de vorm die bestaande applicaties al begrijpen, zodat de koppelingen niet open hoeven. Eigen product, in ontwikkeling.
Bekijk BlokpuntIn 2008 draaide ik een MediaWiki omdat ik wilde weten hoe het werkte. In 2026 doe ik hetzelfde, alleen hangt er nu een publieke collectie aan, en een runbook voor wie na mij komt.
Nieuwsgierig wat dit voor uw project kan betekenen? Bekijk de diensten of plan direct een gesprek.