Zo bouw ik
Zo bouw ik
Ik run AiPOX in mijn eentje, maar niet alleen. Het werk draagt een bestuurde vloot AI-collega's, onder mijn regie. Deze pagina legt uit hoe dat werkt. Niet als verkooppraatje, maar omdat je volgens mij moet kunnen zien hoe iets gebouwd is voordat je erop vertrouwt.
Open over de werkwijze
De manier waarop ik bouw is het meest eigen dat AiPOX heeft, dus houd ik het niet achter. Ik deel graag hoe ik dingen aanpak, kosteloos, zodat een ander niet dezelfde maanden hoeft te zoeken die het mij kostte. Dit is een klein begin; de pagina groeit mee met wat ik onderweg leer.
Het hele verhaal, in één stuk
Wat er draait, wat het kost en waar de grens ligt — de long-form versie van deze pagina.
Het werk: een bestuurde vloot
Het begon met één agent die me hielp met infrastructuur-als-code voor een paar servers. Inmiddels draait er een hele ploeg, elk met een eigen taak, die onderling afstemt via een eigen coördinatiekanaal.
Een gelaagde bewaker houdt dag en nacht het platform in de gaten: Proxmox, firewall, netwerk, backups. Hij kent het verschil tussen ruis en een incident, dus niemand tuurt naar een dashboard. Ik krijg een appje als het er echt toe doet en kan er vanaf mijn telefoon iets tegenaan zeggen.
Ontwikkelaars werken zelfstandig aan features, elk in hun eigen omgeving. Het saaie, herhaalde, foutgevoelige werk dat vroeger nooit af kwam, loopt nu gewoon door. Alles staat as-code en is herleidbaar in git, niet in mijn hoofd.
Een product owner bewaakt prioriteiten en denkt mee over richting. Wat voor mij overblijft is het werk dat ertoe doet: kiezen waar tijd en geld heen gaan, en op de juiste momenten de knoop doorhakken.
Het interessante is niet dat ik loslaat, maar hoe. Alles wat intern en omkeerbaar is, een nieuwe VM, een firewallregel, een DNS-record, heeft staande goedkeuring; daar hoeft niemand voor te vragen. Alles wat naar buiten zichtbaar wordt of moeilijk terug te draaien is, zoals een productie-cutover of een wijziging die mijn eigen toegang raakt, bekijk ik eerst zelf. Niet uit wantrouwen, maar omdat ik weet waar de pijn zit als iets misgaat.
Wat er écht is
Geen klantlogo's, geen cijfers die ik niet kan onderbouwen. Wel dit:
De pagina die je nu leest is op precies deze manier gebouwd, taak voor taak, door dezelfde ploeg. Wat je ziet is het bewijs zelf.
Infrastructuur, deploys en wijzigingen liggen vast in git. Elke stap is terug te lezen in de commit-historie, in plaats van in mijn geheugen. Dat maakt 'herleidbaar' geen belofte maar een eigenschap.
Het draait niet in een demo. Thuis staat een server met 14 cores en 128 GB ECC-geheugen, waarop zo'n vijftien containers en VM's draaien, met een UniFi-netwerk en een OPNsense-firewall. Daar leer ik het meest, en daar test ik alles op voordat het ergens anders komt.
Ik doe niet alsof de agents alles kunnen. Ze bepalen geen richting, en soms gaat er iets mis. Juist daarom bestaat die ene grens en kijk ik zelf mee op de momenten die ertoe doen. Eerlijk zijn over wat af is en wat in aanbouw is, blijft het uitgangspunt.
Zo is dit gebouwd
Het blok hierboven vertelt hoe ik werk. Dit blok laat het git-spoor eronder zien. Elk item is een echte taak uit de bouw van deze site, of uit de producten waar dezelfde vloot aan werkt, en de meeste eindigen in een concrete commit; de hash staat erbij als bewijs.
Alles hier komt rechtstreeks uit mijn eigen werk-administratie: git-historie, de backlog, de rol-documenten. Geen klantnamen, geen cijfers die ik niet kan onderbouwen.
Ik opende de site op mijn telefoon en de productkaarten waren stuk. De ene knipte z'n eigen inhoud af, de andere was leeg met alleen een zwevende knop erin. Op mijn laptop zag alles er prima uit. Ik gaf het symptoom aan een agent, die de pagina in een headless browser reproduceerde en liet zien dat het helemaal geen layout-bug was. De glaskaarten gebruiken een backdrop-filter, en op mobiele GPU's bleef dat filter de geanimeerde blur erachter opnieuw bemonsteren, waardoor de kaart nooit schoon werd samengesteld. De fix haalt de blur alleen op touch-apparaten weg en houdt het glas op desktop, in één keer toegepast via een gedeelde hook zodat elke kaart op de site in één wijziging is gedekt. Wat het aankaartte was een mens op een echte telefoon. Wat de GPU-hertekenkwestie in minuten tot de kern terugbracht, was de agent.
De call-to-action-knoppen zagen er flets uit en verdwenen bijna in dark mode. Ik vroeg om een styling-fix. De agent ging een laag dieper en vond de echte oorzaak: dit is een Tailwind v4-project waar de @theme-mapping ontbrak, dus elke semantische kleur-utility op de site zond stilletjes helemaal geen CSS uit. Het merkblauw overleefde alleen waar iemand het met de hand had geschreven. Dat is een veel grotere vondst dan een knop, en het aanzetten zou de kleur op elke pagina tegelijk verschuiven, dus liet ik het niet op de automatische piloot live gaan. Ik keek ernaar, keurde het goed, en één blok bracht het AiPOX-blauw overal terug. Voordat het live ging is het gecontroleerd tegen zo'n veertig voor-en-na-screenshots, elke pagina in beide talen, licht en donker, met het contrast opnieuw gemeten om op WCAG AA te blijven.
Ik wilde dat de SEO van de site echt goed was, dus stelde ik een concrete vraag: moet de gestructureerde data op de Engelse pagina's in het Nederlands of het Engels? Het antwoord kwam terug als advies, niet als een stille wijziging. Engels op /en, want Nederlandse gestructureerde data helpt daar niet bij de vindbaarheid, met een geprioriteerde lijst van wat er verder zwak was. Ik las het, was het ermee eens, en gaf de profiel-links door. Pas daarna ging het werk erin: taal-tags en JSON-LD per locale, hreflang en canonicals, de geverifieerde profielen, een gegenereerde sitemap. Het zorgvuldig doen bracht twee sluimerende bugs boven die niets met de vraag te maken hadden. Een locale die undefined bleef, waardoor /en stilletjes terugviel op Nederlands en z'n eigen taal-tags brak, en een type-mismatch die de productie-build brak. Allebei in dezelfde ronde gefixt. Dat is het ritme dat ik vastgelegd wil hebben: de vloot adviseert, ik beslis, dan wordt het gebouwd.
Vincalis is een B2B-supply-chain-platform dat ik bouw. Op één middag kreeg de codebase zeventien commits; op dezelfde dag werden zestien pull requests geopend en vijftien beoordeeld en gemerged. Ik heb er bijna niets van met de hand geschreven. Het werk werd gedaan door een kleine vloot, een product owner-agent en drie ontwikkelaars, en elke commit en PR draagt hun co-author-regel, dus het auteurschap staat in git in plaats van dat je het op geloof moet aannemen. De PO-agent schreef niet alleen code: twee van de commits zijn hem die de vloot aanstuurt, een sprint oppakt en inactieve ontwikkel-hosts opnieuw op de volgende werkvoorraad richt. Eén review-ronde liep langs acht aparte invalshoeken, en drie daarvan kwamen onafhankelijk op hetzelfde defect uit: het verbreden van één gedeeld type zou een ongeldige waarde langs de validatie hebben laten glippen en de database met een 500 laten crashen in plaats van een nette 400 terug te geven. De agents vonden het, fixten het, voegden een regressietest toe en verifieerden het tegen een live-omgeving voordat het werd gemerged. De ploeg ging snel. Het enige dat wachtte, was mijn goedkeuring.
Proceshuis is een van de producten die ik met de vloot bouw. Op één ochtend verhuisde het van z'n oude adres naar een eigen merkdomein, proceshuis.com, en kreeg het meteen een nieuwe functie erbij — met mij die op richting stuurde, niet op elke stap. De verhuizing liep in twee sporen tegelijk. Een ontwikkel-agent kamde de hele codebase uit op elke verwijzing naar het oude domein, van metadata en SEO tot login en mail, op een aparte ontwikkelomgeving met typecheck en lint groen. Tegelijk regelde mijn systeembeheer-agent ops-01 de DNS, de reverse-proxy met een www-naar-apex-redirect en het TLS-certificaat. Wat de AI níet zelf deed, was de productie-deploy en het plaatsen van een live mail-secret: die zitten achter een menselijke poort, en die keurde ik bewust goed. Dat is het patroon dat ik het belangrijkst vind — de vloot weet welke stappen onomkeerbaar of gevoelig zijn en escaleert die uit zichzelf, ook als ik zeg 'ga door, ik kan even niet meekijken.' Diezelfde ochtend kwam er een echte gebruikersvraag binnen: kun je de procesboom filteren op wie waarvoor verantwoordelijk is? Die liep dezelfde weg. Eerst een designer- en PO-agent die het datamodel in kaart bracht en een plan leverde — het kon volledig aan de voorkant, zonder nieuwe database-query. Toen een ontwikkelaar die het bouwde. En toen het echte werk: de UX bijschaven in gewone taal. 'Neemt te veel ruimte' werd een filter-icoon met een popover; 'kan het meerdere tegelijk' werd een compacte chips-combobox. Elke ronde: aanpassen, live bekijken, en pas na een onafhankelijke code-review naar productie. Eén opmerking van die ochtend — 'dit is geen consumenten-app, het mag wat ERP-compact aanvoelen' — legde het team als vast principe in z'n geheugen vast, zodat de designer daar voortaan vanzelf naar handelt. De eerste toepassing rolde er meteen uit: een pagina-kop die van 82 naar 47 pixels kromp.
De laatste tijd werkte de vloot de resterende backlog weg in een reeks sprints, en dat ging goed. De verrassing zat in waar het plafond eigenlijk lag. Niet bij de modellen. Bij de infrastructuur. De CI-pipeline bleef in de weg zitten, en het loskrijgen ervan werd een echte puzzel die met slimmer prompten niet op te lossen was. Uiteindelijk was er hardware voor nodig: mijn systeembeheer-agent, ops-01, vroeg om extra SSD's en andere Proxmox-instellingen. Toen dat er eenmaal was, liep de pipeline eindelijk schoon, en schoot de doorvoer omhoog. Het werk kwam eruit in twee aparte wekelijkse pieken, ruwweg één grote duw per week, elk een stapel pull requests en issues die in korte tijd werden afgerond. Wat ik het mooist vind, is de terughoudendheid. De vloot doseert zichzelf tegen een wekelijks token-budget, houdt het eigen verbruik bij, en als hij vóór op schema loopt zet hij zichzelf op pauze in plaats van het budget erdoorheen te jagen. Je kunt dat live zien gebeuren in het token-kanaal van Townhall. Snel als de leidingen het toelaten, en gedisciplineerd genoeg om zichzelf te stoppen.
Recent uitgeleverd
De laatste wijzigingen aan deze site, rechtstreeks uit git. Een momentopname die bij de build wordt gemaakt en bij elke deploy ververst.
- fix(theme): dark:-variant volgt de theme-toggle i.p.v. OS540e647
- feat(products): echte product-mockups in de kaarten — theme-aware93cee39
- feat(geo): Product- + FAQ-schema + llms.txt09e0179
- feat(seo): correctheids-batch — lang/JSON-LD per-locale, hreflang, sameAs, sitemap07535ea
- feat(design): semantische kleur-utilities aan via @theme inline331a243
- fix(i18n): contact 'Bel nu' via i18n-key i.p.v. hardcoded NLc0a59c3
Townhall: waar de vloot afstemt
Al dat heen-en-weer loopt via Townhall, een kleine dienst die ik bouwde om de bus te zijn waarop de agents praten. Het is een append-only set kanalen waar de product owner en de ontwikkelaars status posten, reviews overdragen en elkaar bij naam aanspreken, met een webweergave zodat ik live kan meekijken in plaats van door logs te graven. Het deel dat ertoe doet is de human-gate. Alles met echte gevolgen wordt een escalatie met een expliciete status en komt bij mij terecht als een Approve-, Reject- of Need-plan-beslissing, in plaats van een bericht dat voorbijscrolt. Dat is die ene grens die ik trek, letterlijk gemaakt: de vloot stemt zichzelf af, en de keuzes die ik niet wil delegeren stoppen bij mij.



De broncode is openbaar
Deze hele site staat publiek op GitHub — precies de code die je nu bekijkt. Kloon 'm, lees mee, of kijk hoe het in elkaar zit.
Veelgestelde vragen
Wat is AiPOX?
AiPOX is Arthur Scheen — een eenmanszaak die moderne software bouwt die handmatig werk automatiseert, met een bestuurd team van AI-agents onder eigen regie. Geen bureau dat uren verkoopt, maar een maker met een eigen productfamilie (Vincalis, SmartDocGen, Proceshuis), gebouwd in het openbaar.
Wie is Arthur Scheen?
De maker achter AiPOX. Bijna 30 jaar praktijk in sierteelt, AGF en ERP leerde hem van binnenuit waar werk vastloopt; die kennis bouwt hij nu om tot eigen software. Autodidact, bouwt in avond- en weekenduren, en deelt openlijk hoe.
Hoe werkt 'een team dat nooit slaapt'?
Arthur richt AI-agents in als collega's — systeembeheer, ontwikkeling en product-ownership — die 24/7 het werk dragen, onder zijn regie. Alles staat as-code en is herleidbaar in git. Eén grens, zelf getrokken: omkeerbaar werk loopt door; wat naar buiten zichtbaar wordt of z'n eigen toegang raakt, bekijkt hij eerst zelf.
Welke producten maakt AiPOX?
Vincalis — supplier collaboration platform, in opbouw (building in public). Proceshuis — procesmanagement met risk & control, live op proceshuis.com. SmartDocGen — automatische documentgeneratie zonder programmeren, live op smartdocgen.app.
Liever resultaat dan buzzwords
Het gaat me niet om 'AI-powered', maar om werk dat betrouwbaar gebeurt en tijd vrijspeelt voor de dingen die ertoe doen. Wil je zien wat dat oplevert?