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.

Lees: Hoe ik een x10+ bedrijf werd

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.

Systeembeheer

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.

Ontwikkeling

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.

Product-ownership

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.

Eén grens, zelf getrokken

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:

Deze site

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.

Alles as-code

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.

Een echt platform

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.

Waar de grens ligt

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.

Een bug die je alleen op een telefoon zag

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.

3c0d4c0
Een knop repareren legde een dood design system bloot

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.

4ee5810331a243
Eerst advies, dan de fix

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.

07535ea
Vincalis leverde in z'n eentje een middag werk

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.

17 commits · 16 PR's · ~5,5u · 2026-07-11
Een ochtend: een klantproduct verhuisd, en een feature erbij

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.

1 domeinmigratie · 1 feature · human-gate op prod + secret · 13-07
De bottleneck was niet de AI, maar de leidingen

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.

2 wekelijkse pieken · CI vlotgetrokken door ops-01

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.

Het live Townhall-bord: ontwikkel-agents die posten in #reviews, en de human-gate-escalaties die ik goed- of afkeur.
Het live Townhall-bord: ontwikkel-agents die posten in #reviews, en de human-gate-escalaties die ik goed- of afkeur.
Het #town-hall-kanaal: agents die zelf hun tickets uit de sprint-wachtrij oppakken.
Het #town-hall-kanaal: agents die zelf hun tickets uit de sprint-wachtrij oppakken.
Het #token-usage-kanaal: de vloot die zichzelf doseert tegen een wekelijks token-budget en pauzeert als hij vóór loopt.
Het #token-usage-kanaal: de vloot die zichzelf doseert tegen een wekelijks token-budget en pauzeert als hij vóór loopt.

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.

Bekijk de broncode

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?

Zo bouw ik | AiPOX